【发布时间】:2011-07-29 02:38:01
【问题描述】:
我有一个包含多个表的 SQL 数据库:A、B、C、D。这些表中的实体是完全不同的事物,具有不同的列,它们之间的关系也不同。
但是,它们都有一个共同点:需要一个评论系统,在这种情况下,它具有相同的结构:作者 ID、日期、内容等。
我想知道哪种策略最适合此架构让 A、..D 表使用注释系统。在经典的“博客”网站中,我会使用与“cmets”表内的 post_id 的一对多关系。
这里看起来我需要一个 A_cmets、B_cmets 等表来处理这个问题,这看起来有点奇怪。
有没有更好的办法?
【问题讨论】:
-
旁注:表没有关系,它们是关系(或者至少,如果 SQL 正确实现了关系模型,它们会是关系)。他们之间的关系是关系。
-
@Marcelo,有趣的一点,你能扩展一下吗? (虽然我的英语很好,但这不是我的母语)。表本身是如何关系的?
-
这不是真正的英语,而是数据库术语的问题。 relation 是关系模型中一个非常具体的概念(非正式地,一组带有标题的元组);它在 SQL 中的对应物是表。当您提到表之间的“关系”时,您真正的意思是外键,这是表之间约束的一种特殊情况,可以随便称为关系。但应避免使用“关系”一词,以免与该词的正式含义混淆。
-
关系这个词来自数学。这是一组有序的元组。数据的关系模型源于关系的数学。使用单词关系来表示表之间的关联有助于清晰。这在其他语言中可能会有很大不同。
标签: sql database-design