我正在构建一个拥有大型数据库的网站,有6种类型的数据,因此有6种形式将数据传递给数据库。 每个表单都有唯一的参数,6个表单中的4个具有相同的字段,字段可以包含多个数据:电子邮件,地址和电话可以在4种表单上多个。
对于第一个我想创建4个不同的表,如:store_contacts,warehouse_contacts,delivery_contacts等,以保持不同的类型分开。 所以我会有4个类似的表包含相同的字段:
id,电话,电子邮件,地址,store_id / delivery_id / etc
我已经阅读了更好的做法,创建一个包含它们的表,表格联系人:
id,type,type_id,phone,email,address
来自类似的问题:
但是我不确定表格是否会在以后更改,并且新字段将仅用于商店或仅用于交付。除了接触,我对其他领域也有类似的情况。
每当我需要为某种类型提取数据或需要删除它时,使用类型进行查询会不会很舒服?当插入很多行时,它不会变得混乱吗?如果为'store'创建一个新字段,那么其他字段在该字段上是否包含NULL是可以的吗?
答案 0 :(得分:0)
您可能应该阅读一些关于关系实体或面向对象 - 继承的内容,具体取决于您正在使用的范例。
例如,您可以在this
等文章中了解相关信息通常,您应将联系人存储在单独的独占实体中,原因很多。特定于扇区的字段可以存储在每个表中,但前提是您确定在其他实体中不会使用它们。例如:warehouse_contacts将有一个虚构的员工ID字段,用于表示仓库中的员工可以参加给定的联系人。尽管如此,最好的做法是建立一个管理这些信息的第三个表。
尽管如此,如果性能问题,我的意思是,如果您的网站中有数百万条记录和数十条并且几十条同时访问,那么您的数据库可能会在更少的表中运行得更快,而不是那么规范化。但对于大多数企业和用户来说,这种情况是不太可能的。相反,这种情况在大规模和遗留系统中是一种常见的做法。
祝你好运。