sql – 多个表需要一对多关系
发布时间:2020-12-12 16:09:54 所属栏目:MsSql教程 来源:网络整理
导读:我有一个具有多个表的SQL数据库:A,B,C,D.这些表中的实体是完全不同的东西,具有不同的列以及它们之间的不同种类的关系. 然而,他们都有一个小小的事情:在这种情况下需要一个评论系统将具有相同的结构:author_id,date,content等. 我不知道哪个策略是最好的这
我有一个具有多个表的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中阻止这一点的任何方法,除了当然要做你想避免的事情:创建多个注释表. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |