Нужен совет для поддержания определенного порядка в наборах данных в MySQL - PullRequest
0 голосов
/ 11 августа 2011

Предположим список имен в таблице с именем authors.Каждый автор написал несколько книг при жизни.Важно: Вы не знаете точных дат, когда книги были опубликованы. (Если бы я теперь уточнил точные даты, я мог бы просто упорядочить их по каждому запросу, и я был бы хорош.) Вы знаете толькопорядок издания книг.Книги хранятся в таблице books.У нас есть отношение «многие ко многим» между authors и books.

Вопрос : Как бы вы сохранили порядок истории публикаций каждого из авторов?

Пример:

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 Ответ

1 голос
/ 11 августа 2011

Я бы добавил дополнительный столбец с именем sortorder или что-то подобное.Первая книга получает 1, вторая - 2 ... и т. Д. При этом вы можете использовать ORDER BY author, sortorder для получения списка книг, отсортированного по автору и порядку публикации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...