用户的自定义配置文件字段


User's custom profile fields

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

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

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

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

如果你选择Boyce-Codd,你可以分离信息并将它们存储到一个表中。表示具有外键的所有用户的一个表。

每个用户一个表将导致数百个或更多表,其中包含可能重复的信息。

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

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