如何将一个表与多个不同的表相关联?

has*_*ash 3 mysql database database-design

我有一个表格列表,即学生,教师,工作人员,部门.等等,每个表都有特定于它们的注释.现在,表中的一条记录可以有一条或多条注释,表明它是从任何表到注释表的一对多关系.我不知道将评论表与每个评论表联系起来的最佳方法是什么.如果我将注释表中的外键放到每个表中,它将取决于40-50个字段.的表格.其次,如果我将这些表中的每个外键添加到备注表中,它就像重复整行只是为了第二个备注外键?类似地,如果我在每个表中只使用一个字段作为注释,我实际上只在一个文本字段中存储行.有关如何实现有效解决方案的任何建议?

Zor*_*che 6

让我们假设您的表(学生,教师,员工,部门)都有一个名为Id的int主键.

对于您的评论表,您可以创建一个表.

Id int
CommentType enum (student, teacher, staff, dept)
LinkId int
Comment
Run Code Online (Sandbox Code Playgroud)

评论中的一行可能如下所示

1,'Student',347,'text'
Run Code Online (Sandbox Code Playgroud)

  • @Bill Karwin 请问您有什么更好的解决方案吗? (2认同)