0

我目前正在开发一个系统,该系统允许用户为他们添加的联系人添加额外的自定义字段。

我想知道添加这种能力的最佳和最有效的方法是什么?

现在我在想的是每个用户有一个表(外键到“主”联系人表),然后为用户添加的每个自定义字段添加一列(因为我不希望有超过 100每个数据库分片-200 个用户[分片很容易,因为每个用户在这个系统中都看不到彼此的内容]),尽管我不能 100% 确定这是否是解决此类问题的正确解决方案。

4

3 回答 3

2

也许您可以尝试使用一个单独的表来存储对用户的引用以及字段名称和值,这样您就可以拥有很多自定义字段。

于 2012-08-14T15:52:54.413 回答
1

如果您使用Boyce-Codd,则将信息分开并将它们存储到表中。表示为所有具有外键的用户提供一个表。

于 2012-08-14T15:56:53.677 回答
0

每个用户一张表将导致数百或更多表可能重复信息。

您需要有一个名为 USERS 的表来存储用户的 id 和您可能想要的固定信息。然后,您可以有一个 CONTACT 表,它存储用户可能创建的联系人类型,以及一个匹配表 USER_CONTACT,该表将用户唯一 ID 与创建的联系人 ID 匹配。

有了这个,您可以对存储的所有信息进行高级数据挖掘,例如现在每个用户创建了多少联系人,谁创建了更多等等......

于 2012-08-14T15:56:48.890 回答