【发布时间】:2012-11-30 06:56:38
【问题描述】:
我想确保这是处理特定场景的最佳方式。
假设我有三个主要表格,我将保持它们的通用性。它们都有主键,它们都是独立的表,没有任何引用。
表 1
PK
VarChar Data
表 2
PK
VarChar Data
表 3
PK
VarChar Data
这是一个场景,我希望用户能够评论上述每个表格的特定行。但我不想创建一堆评论表。所以到目前为止我是这样处理的..
有一个注释表,其中包含三个外键列,每个列引用上面的主表。存在一个限制,即只能对这些列中的一列进行赋值。
评论表
PK
FK to Table1
FK to Table2
FK to Table3
VarChar Comment
FK to Users
我的问题:这是处理这种情况的最佳方式吗?是否存在通用外键?或者我应该为每个主表有一个单独的 cmets 表..即使数据结构完全相同?或者每个人都有一个映射表是更好的解决方案吗?
【问题讨论】:
-
我会采用这种方法 - 好的,您有三个 FK 列,其中只有一个会有值。但是使用这种方法,您可以通过设置适当的外键约束来强制引用完整性。如果你有一个 generic FK(例如一个 type of FK 列),那么你不能这样做 - 并且能够强制引用完整性在数据库设计的范围比“保存”一两列 ....
标签: database database-design data-modeling