我正在做一个项目,其中数据库有几个表,其中包含一个type\u id字段,该字段存储来自多个表的id
例如:
id | table_type | table id
==============================
1 ADDRESS 1
2 ADDRESS 2
3 CITY 1
4 CITY 2
4 ADDRESS 3
5 COUNTRY 1
table_id字段保存addresses表、cities表或countries表中的id
我只是想知道这是不是个好设计。或者我应该尽可能避免这种情况?
此表用于获取用户输入的所有位置。
最佳答案
答案是:
这要看情况。
如果您给出的示例表名为Location
,并使用它来实现类型继承,其中Address
、City
和Country
是Location
的特定类型,则此设计可以工作。在这种情况下,主键将位于Location
表中,其他每个表都有一个外键指向Location
。如果这不是您使用它的方式,那么这不是一个正确的规范化数据库设计。