【发布时间】:2017-06-16 20:11:09
【问题描述】:
我正在建模文章及其作者,其中每篇文章可以有多个作者,每个作者可以有多个文章。保持给定文章的作者顺序很重要(成为给定文章作者列表中的第一个作者与成为最后一个作者有很大不同)。我如何最好地保持作者的顺序? (我使用的是 postgres,9.4)
通过“author_id,article_id”中间表的经典多对多不会保留给定文章的作者顺序。我看到了两种解决方案:
在 author_articles 表中添加 author_rank 列,使其为“author_id, article_id, author_rank”
废弃中间表,在文章表中添加一个“author_ids”列,并在其中保留一个作者 ID 数组。 (失去了对参照完整性的自动检查,但获得了简单性)
还有其他解决方案吗?这两种解决方案中的任何一种更糟糕的原因是什么?谢谢!
【问题讨论】:
标签: sql postgresql database-design many-to-many