【发布时间】:2018-10-26 10:04:16
【问题描述】:
场景:多种类型转换为一种类型;一对多。 比如:
父多类型:学生表、供应商表、客户表、酒店表
子单类型:银行明细
所以一个学生可能有多个银行详细信息,供应商等也可以。
布局选项 1 学生表 (id) + students_banking_details (student_id) 表,具有适当的 id 关系,每个父类型重复。
布局选项 2 学生表(+其他)+banking_details 表。 bank_details 将有一个用于链接的 parent_id 列和一个用于确定父级(学生/供应商/客户等)的 parent_type 字段。
布局选项 3 学生表(+其他)+banking_details 表。然后我会为每个父类型创建另一个关联表(例如:students_banking_details),用于链接 student_id 和 banking_details_id。
布局选项 4 学生表(+其他)+banking_details 表。 bank_details 将为每个父类型提供一个列,即:student_id、supplier_id、customers_id 等。
其他?您的意见...
我对这些的想法:
- 相同类型信息的多个表似乎错误。如果我想更改有关银行详细信息的存储内容,我还必须更改几张表,而不是一张。
- 似乎是最可行的选择。显然,这并不能保持“参照完整性”。如果我只是在删除父母时以编程方式清理孩子,我不知道这对我有多重要?
- 与 (2) 相同,但每种类型都有一个额外的表,因此我的逻辑告诉我,这将比 (2) 慢,但具有更多表且结果相同。
- banking_details 表中有一堆空字段对我来说似乎很脏。
【问题讨论】:
标签: mysql database database-design relational-database