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

时间:2013-05-10 05:25:36

标签: mysql database-design set

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

因此,我想创建一个关于人员详细信息的表格,并说出除了名称,地址,联系人等基本信息之外的其他信息。我还需要存储此人是投资人,导师,人力资源专员,校友,合作伙伴,捐助者还是服务提供商。他可以在上面列出的超过1个领域。

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

我想到的其他选择是:

1.为原始表中的每个字段增加7个额外的布尔列。

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

Plz提出了一些好的方法!提前谢谢

1 个答案:

答案 0 :(得分:2)

正常化。

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

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


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


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