mysql - SET() 或请建议合适的设计

标签 mysql database-design set

我想这个问题很基础,但我认为这些是最难的。

所以假设我想创建一个关于 person 的人员详细信息的表,并假设除了姓名、地址、联系人等基本信息之外的其他信息。等我还需要存储这个人是投资者、导师、人力资源专家、校友、合伙人、捐赠者还是服务提供商。他可以在上面列出的 1 个以上的领域。

是否建议将 set() 字段与 7 个选项一起使用?似乎是这样做的逻辑方法,但我读过 set() 字段对大型数据库中的搜索不友好。

我想到的其他选项是:

1.原始表中的每个字段有 7 个额外的 bool 列。

考虑到数据库/表会很大,哪种方法最好?

请提出一些好的出路!!提前致谢

最佳答案

规范化。

一个表保存不同的类型,然后,由于一个人可以有零个或多个类型,另一个表将它们粘合在一起。考虑这样的设计;

person:
--------------
id int
name varchar
email varchar
...


type
--------------
id int
name varchar


person_type
--------------
person_id
type_id

关于mysql - SET() 或请建议合适的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16475730/

相关文章:

mysql - 排序插入数据库的最佳选择

php - 字符串运算,如二进制 AND

database - DB Design 用于存储表的自定义字段

python - 设置与可迭代列表的差异

php - PHP strtotime无法与while数组一起使用

Mysql - 来自 1 个表的 3 个单独的总和 - 工作 - 搜索更好的查询

MySQL:DROP PARTITION 是否触发了 TRIGGER ON DELETE?

mysql - session /日志表关键设计问题

python - Pandas:以唯一值为条件的连接

Java 将 Set<Set<String>> 转换为 List<List<String>>