2012-08-14 49 views
0

我目前正在研究一個系統,該系統允許用戶爲他們添加的聯繫人添加其他自定義字段。用戶的自定義配置文件字段

我想知道什麼是最好和最有效的方法來添加這種能力?

現在我在想的是每個用戶有1個表(外鍵爲「主」聯繫人表),然後爲用戶添加的每個自定義字段添加一列(因爲我不期望每個數據庫分片擁有超過100-200個用戶[分片很容易,因爲每個用戶都不會在這個系統中看到彼此的內容]),儘管我不能100%確定這是解決這些問題的正確解決方案。

回答

2

也許你可以嘗試使用一個分隔表來存儲對用戶的引用,以及字段名和值,這樣你就可以擁有大量的自定義字段。

+0

這是我正在考慮的另一種選擇。雖然我想知道,如果我想添加通過這種方法搜索這些字段的能力,這種事情的性能影響是什麼? – Manhim 2012-08-14 15:54:07

+0

我不認爲這會是一個問題,如果你通過用戶參考索引它,因爲它可以是一個簡單的索引(如果你使用簡單的主鍵字段的用戶),它可能是唯一的搜索類型。 – Wanderson 2012-08-14 15:56:21

+0

無論如何,這樣的搜索比在1個表中的100個字段中更好。 – Wanderson 2012-08-14 15:57:18

0

每個用戶一張桌子會導致數百或更多的表格有可能重複的信息。

您需要有一個名爲USERS的表,其中存儲了用戶的標識和您可能需要的固定信息。然後,您可以擁有一個CONTACT表,用於存儲用戶可能創建的聯繫人的類型,以及一個匹配的表USER_CONTACT,它將用戶唯一ID與創建的聯繫人的ID相匹配。

有了這個,你可以有多少個聯繫人每個用戶創建的存儲,就像nowing所有的信息,誰創造了更多的,等先進的數據挖掘...

+0

這正是現在的情況。我需要爲用戶添加一個方法來將自定義字段添加到批次中。 – Manhim 2012-08-14 15:57:29

1

如果用Boyce-Codd去,你分開的信息並將它們存儲到一個表中。 表示所有用戶使用外鍵的一張表。

相關問題