我正在尝试设计一个与ASP.net MVC应用程序一起使用的数据库。这是场景:有三个实体,用户可以针对每个不同的实体发布其评论。我只是想知道如何仅将一张表放入注释并将所有其他实体链接到该表。显然,评论表需要对这些表的3个引用(外键),但是您知道这些外键不能为空,并且每一行只能填充其中一个。除了为每个实体的评论实施三个不同的表格之外,还有什么更好的方法吗?
最佳答案
任一:每个实体类型一个注释表
或:一个主Entity表,带有子Comment和EntityType特定表。
对于3个实体表,PK为EntityID
一个供3个父母使用的注释表没有捷径或优雅之处:从数据库设计的角度来讲这是错误的。
就个人而言,我可能会选择选项1 ...
编辑,反射Reflection :
有时您必须查看数据的使用情况。
如果在单独的屏幕上分别使用这3个实体,则不要相互链接,这将是选项1。
如果使用3个实体并一起显示,则选项2更有意义,因为您可以更轻松地将数据组合在一起。