Есть следующие таблицы, хочу отметить, что это исключительно пример:
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