【发布时间】:2020-12-17 07:31:10
【问题描述】:
我的项目中有 100 多个 MYSQL 表,并且大部分项目都有公共字段,如 created_by、last_modified_date、last_modified_by 和其他一些字段。用这些公共字段创建一个新表并与该表添加一对一关系是个好主意吗?例如。
- common_table:id、created_by、last_modified_by
- table1:id、姓名、地址、common_table_id
- table2:id、姓名、余额、日期、common_table_id
- table3:id、价格、isActive、common_table_id
- tableN:字段 ....,common_table_id
在上面的示例中,我有一个表名 common_table 包含所有公共字段,并且该表与所有其他表具有一对一的关系。这使我更容易添加或更新公共字段,而无需在所有表中复制它。由于我处于开发阶段,这种方法是否存在性能缺陷或将来会导致其他生产问题?
【问题讨论】:
-
如果同一个ID可以在不同的tableN中,这将不起作用。
-
每个表都有自己的公用表ID,即公用表不可重用。
-
这样做没什么好处,恕我直言。
-
拆分表应该代表实体之间的逻辑关系。您不会仅仅因为列相似就这样做。它不节省存储空间(所有相同的数据都必须存储,它们只是在不同的表中),而且它使查询更加复杂。
-
是的,我同意,现在我放弃这个想法来共享一个公用表。
标签: mysql sql database-design