2011-08-11 5 views
0

authorsという名前のテーブルの名前のリストを仮定します。各著者は生涯にわたっていくつかの本を書いています。重要:書籍が公開された日時はわかりません。(私が今正確な日付になっていれば、それぞれの質問でそれだけで注文することができ、私はうまくいくでしょう)あなたは本の出版の順序しか知りません。本はテーブルbooksに保存されています。 authorsbooksの多対多関係があります。MySQL内のデータセット内で特定の順序を維持するための助言が必要

質問:各著者の出版履歴の注文をどのように保存しますか?私はと呼ばれる列に特定の著者の出版物の順番を覚えて各著者のためにカンマ区切り値(本の主キー)の文字列を格納しています現時点では

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

sortorderなどの余分な列を追加します。最初の本は1、もう1つは2 ...などです。それでORDER BY author, sortorderを使用して、著者と出版順序でソートされた書籍のリストを取得できます。

+0

あなたは関係テーブル 'author_book'を意味していますか?それでは(author_id、book_id、sortorder)でしょうか? – Aufwind

+0

はい、まさにその意味です – Jacob

関連する問題