sql – 多个表需要一对多关系

前端之家收集整理的这篇文章主要介绍了sql – 多个表需要一对多关系前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个具有多个表的sql数据库:A,B,C,D.这些表中的实体是完全不同的东西,具有不同的列以及它们之间的不同种类的关系.
然而,他们都有一个小小的事情:在这种情况下需要一个评论系统将具有相同的结构:author_id,date,content等.

我不知道哪个策略是最好的这个模式有A,.. D表使用注释系统.在一个古典的“博客”网站中,我将在“comments”表中使用一个与一个post_id的一对多关系.

在这看来,我需要一个A_comments,B_comments等表来处理这个问题,看起来有点奇怪.

有没有更好的办法 ?

解决方法

创建一个comment_id主键和注释的各种属性的注释表.

另外,创建A_comment因此:

CREATE TABLE A_comment (
    comment_id PRIMARY KEY REFERENCES comment(comment_id),A_id REFERENCES A(A_id)
)

同样为B,C和D.这样可以确保注释和所有其他表之间的引用完整性,如果您在注释中直接存储ids至A,C和D,则无法执行此操作.

声明A_comment.comment_id作为主键确保注释只能属于A中的一个条目.它不会阻止注释属于A中的条目和B中的条目,但只有这么多可以实现外键;这将需要数据库级约束,我不知道数据库支持.

这个设计也不会阻止孤立的评论,但是我不能想到在sql中阻止这一点的任何方法,除了当然要做你想避免的事情:创建多个注释表.

原文链接:https://www.f2er.com/mssql/82514.html

猜你在找的MsSQL相关文章