2012-07-03 21 views
0

我試圖做這樣的:每個用戶都有不同的「結構」只使用一個表

每一個用戶可以選擇的字段(如MySQL的結構),其中本場可以處理各自的價值,它是比如在數據庫中做一個數據庫。
但我怎麼能用一張桌子呢?
(不是在談論用戶帳戶等,我應該能夠使用指向他自己的「結構」的指針)

做一些類似於:varchar註冊類似於「Name:asd」的地方PHP爆炸的關鍵字:獲取相應的結構(在這種情況下是「名稱」)和相應的值? ('asd') 使用BLOB?有人能爲我打開燈嗎?我不知道如何做一些比我目前的解釋更好的作品...

我知道我的文字很混亂,對不起任何英文不好。

編輯:
另外,他們可以添加在那裏接受了新的價值
多個鍵/「結構」而且他們無法看到數據庫或表,他們還是普通用戶
我的服務器不支持Postogre

+0

你確定沒有任何關係嗎,預填充選擇框等? –

+0

有什麼問題?我仍然可以在「userinfo」上做到這一點 – PedroGabriel

回答

2

在我看來,你應該創建兩個表。

  1. 與用戶信息
  2. 與3個字段(用戶ID,鍵和值)

每個用戶具有在第一表1個記錄。每個用戶可以在第二個表中有0個或更多記錄。這將確保您仍然可以搜索數據,並且用戶可以在需要時輕鬆添加更多鍵/值對。

+0

兩個「數據庫」?我認爲你的意思是表? –

+1

@OcasoProtal嘿,這裏還是很早的:)謝謝! – PeeHaa

+1

這就是答案。兩個表和一個連接查詢。 – shxfee

0

使用包含鍵值對的表。所以,三列:

  • 用戶ID
  • 鍵( 「名稱」)
  • 值( 「ASD」)

用戶ID添加一個索引,這樣就可以查詢用戶的屬性很容易。如果要查詢具有相同屬性的所有用戶,則可以在密鑰和/或上添加第二個索引。

1

不要在數據庫中開始構建數據庫。在這種情況下,由於用戶自己創造場地,所以我知道場地之間沒有關係?在這種情況下,看看NoSQL數據庫是有道理的,因爲它們似乎非常適合這種情況。

另一件事來檢查是一樣的東西: http://www.postgresql.org/docs/8.4/static/hstore.html

不要試圖建立一個像表:記錄,字段,字段類型等等。這是一種不好的做法,不應該是必要的。

有關您的願望的更具體的答案,我們需要更多有關用戶存儲數據的信息。

1

雖然我認爲這個問題的理性答案是由PeeHaa給出的,但如果你真的希望數據適合一張表,你可以嘗試在一個字段中保存一個序列化的PHP數組。檢查出serializeunserialize

生成一個值

這是用於存儲或傳遞PHP值,而不會失去其 類型和結構是有用的可存儲表示。

不鼓勵使用此方法,因爲它根本沒有可擴展性。

0

希望你正在使用一種編程語言來獲取數據並呈現它們。

您可以有一個具有varchar字段的表。然後,將字段結構的序列化數據及其值存儲在該字段中。當您想要獲取結構時,請查詢數據並反序列化該varchar字段數據。

據我所知,每種編程語言都支持序列化和反序列化。

已編輯:這不是一個可擴展的選項。

+0

儘管這是可能的,但請注意,這是不鼓勵的。 – PeeHaa

+0

@PeeHaa謝謝,你是對的。這不是一個可擴展的選項。我剛剛編輯帖子。 –

相關問題