实现共享注释表

时间:2015-02-03 22:24:21

标签: mysql database database-design relational-database

已经提出了各种类似的问题,但它们要么不相同,要么我无法理解答案。 所以非常简单,请......我有各种表有一个注释字段,可能包含多个注释。显然,前进的方向是引用评论表。我没关系。 但我无法想象两个或多个表如何共享相同的注释表并使Table1Comments,Table2Comments等看起来很疯狂。我正在使用phpMyAdmin,如果我使用相同的名称,它不是唯一的并且失败。

如何修改以下内容,以便Table1和Table2都在评论中存储注释?

[表1: * table1ID]

[表2: ?table2ID]

[评论: commentID, * table1ID, 评论, 日期]

LittleC说他自己在这篇文章Foreign key referring to primary keys across multiple tables?中这样做了,但我无法理解答案!

请不要关闭,因为它与其他人相似,因为我已经达到了要求,需要帮助!感谢

1 个答案:

答案 0 :(得分:0)

我在我写的一个大型程序中完成了这个(无论好坏)。关键(双关语)是你必须添加一个'类型'你的桌子的指示符。你写了

[Comments: commentID, *table1ID, comment, date]

显然tableID不是唯一的,因为它可以引用你的例子中的任何一个表。您需要添加标识表的额外字段(通常但不一定是字符)。因此结构应该是

[Comments: commentID, *table1ID, type, comment, date]

在我的计划中,表格'目标'项目'客户' (可能还有其他人)将他们的评论存储在'评论'表。所以'类型'字段具有D,P和C等值以区分。

我在上面提到的内容与LittleC对你引用的问题的答案之间的区别在于我使用一个字符来区分,而他/她正在使用一个整数。我的解决方案更有限,但可能更清晰;它也足以满足我的需求。另一个解决方案需要一个表格表。