@entermix

Как правильно организовать has many through с возможностью сортировки?

Есть следующие таблицы, хочу отметить, что это исключительно пример:

pages
id, name, created, updated

tags
id, name, created, updated

Соответственно таблица связей:
pages_tags
page_id, tag_id

Все бы хорошо, но дополнительно нужно иметь возможность сортировать теги/страницы по дате создания их связи:

Можно сделать так:
pages_tags
id (автоинкримент), page_id, tag_id

PRIMARY (id, page_id, tag_id), FK (page_id, tag_id)


В таком случае по умолчанию сортировка происходит по ID, и все бы отлично, но правильно ли это?
Вижу несколько минусов, например:
- Нужно будет всегда удалять все теги для статьи, перед тем, как добавить добавить новые (с новым порядком), т.е. получается при каждом изменении нужно удалять/записывать информацию заново
- такой способ провоцирует текучку идентификаторов

Еще вариант:
pages_tags
page_id, tag_id, position


Но это менее удобно, и не получится работать с ORM, в данном случае Kohana ORM
  • Вопрос задан
  • 315 просмотров
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony Куратор тега MySQL
Все бы хорошо, но дополнительно нужно иметь возможность сортировать теги/страницы по дате создания их связи

Возможно тогда стоит добавить колонку, в которой будет хранится именно эта информация?

Но это менее удобно, и не получится работать с ORM, в данном случае Kohana ORM

Почему?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы