需要一些建议来维护MySQL内数据集中的某个顺序

时间:2011-08-11 11:47:22

标签: mysql dataset many-to-many

假设名为authors的表中的名称列表。每个作者在他的一生中都写过一些书。重要提示:您不知道图书发布时的明确日期。(如果我现在确切的日期,我可以按每个查询中的顺序排序,我会很好。)你只有知道书籍出版的顺序。这些书籍存储在表格books中。我们在authorsbooks之间存在多对多关系。

问题:您如何存储每位作者的出版历史顺序?

示例:

Luc - title_1
Luc - title_2
Luc - title_10
Luc - title_234

Peter - title_1
Peter - title_5
Peter - title_10
Peter - title_987

John - title_2
John - title_5
John - title_9

...

目前,我正在为每个作者存储一串逗号分隔的值(书籍的主键),以便记住某个作者在books_order列中的出版物的顺序。

id    name      publication_order
...
4     john      (2, 5, 9)
...

但这肯定是错误的方式。如何规范化?

1 个答案:

答案 0 :(得分:1)

我会添加一个名为sortorder的额外列或类似的列。第一本书获得1,第二本获得2 ...等等。然后,您可以使用ORDER BY author, sortorder获取按作者和出版顺序排序的书籍列表。< / p>