已经提出了各种类似的问题,但它们要么不一样,要么我无法理解答案。 所以非常简单,请......我有各种表格,这些表格都有一个评论字段,其中可能包含多个评论。显然,前进的方向是引用 Comments 表。我没意见。 但我无法想象 2 个或更多表如何共享同一个 Comments 表,并且拥有 Table1Comments、Table2Comments 等似乎很疯狂。我正在使用 phpMyAdmin,如果我共享相同的名称,则它不是唯一的并且会失败。
如何修改如下,让Table1和Table2都在Comments中存储评论?
[表 1: *表1ID]
[表 2: ?table2ID]?
[评论: 评论ID, *表1ID, 评论, 日期]
LittleC 在这篇文章中说他自己这样做 Foreign key referring to primary keys across multiple tables?但我无法理解答案!
请不要关闭,因为它与其他人相似,因为我已经陷入僵局,需要帮助!谢谢
最佳答案
我已经在我编写的一个大程序中做到了这一点(无论好坏)。关键(双关语意)是您必须在表中添加“类型”指示符。你写了
[Comments: commentID, *table1ID, comment, date]
显然 tableID 不是唯一的,因为它可以引用您示例中的任何一个表。您需要添加一个额外的字段(通常但不一定是字符)来标识表格。因此结构应该是
[Comments: commentID, *table1ID, type, comment, date]
在我的程序中,表“dockets”、“projects”、“customers”(可能还有其他)将他们的评论存储在“comments”表中。因此,'type' 字段具有 D、P 和 C 等值以进行区分。
我上面的建议与 LittleC 对您提到的问题的回答之间的区别在于,我使用的是字符来区分,而他/她使用的是整数。我的解决方案比较有限,但可能更清晰;它也足以满足我的需要。另一个解决方案需要一个表的表。
关于mysql - 实现共享评论表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28309931/