Всем привет!
Товарищи, посоветуйте, пожалуйста, как правильно организовать систему тегов для мультиязычного сайта.
Сайт предназначен для изучения различных языков.
Планирую сделать по одной таблице на каждую часть речи и проч.
Перевод этих частей речи планирую сделать через yii2-translated-behavior
каждая типовая страница сайта - это как бы пост о той или иной части речи. Каждый пост должен содержать теги.
В yii2-taggable описан случай, когда мы делаем теги для записи одной таблицы.
Собственно, вопросы:
1)Как сделать теги, чтобы один тег мог относиться не только к записям одной таблицы, а к к разным таблицам (т.е. частям речи)?
2)Как организовывать локализацию тегов?
Спасибо.
Как сделать теги для нескольких таблиц?
-
- Сообщения: 12
- Зарегистрирован: 2010.09.12, 16:30
Re: Как сделать теги для нескольких таблиц?
1) В yii2-taggable как раз один тег и относится к записями из разных таблиц. Там в примере в документации все теги лежат в {{%tag}} и связаны с {{%posts}}' посредством таблицы {{%post_tag_assn}}. Т.е. один и тот же тег может быть привязан к разным сущностям.
2) Можно, как вариант, хранить все вместе, т.е в таблице {{%tag}} будут лежать теги на всех языках а к конкретной записи уже привязывать только теги на том языке, который нужен (в {{%post_tag_assn}} cвязывать по tag_id+ post_id + lang_id ) . Но подойдет Вам такой вариант или нет, зависит от масштаба Вашего проекта
2) Можно, как вариант, хранить все вместе, т.е в таблице {{%tag}} будут лежать теги на всех языках а к конкретной записи уже привязывать только теги на том языке, который нужен (в {{%post_tag_assn}} cвязывать по tag_id+ post_id + lang_id ) . Но подойдет Вам такой вариант или нет, зависит от масштаба Вашего проекта
Re: Как сделать теги для нескольких таблиц?
Один и тот же тег привязан к разным сущностям одной таблицы. А мне нужно, чтобы был привязан к разным сущностям разных таблиц.webinvader писал(а): ↑2017.09.25, 13:53 1) В yii2-taggable как раз один тег и относится к записями из разных таблиц. Там в примере в документации все теги лежат в {{%tag}} и связаны с {{%posts}}' посредством таблицы {{%post_tag_assn}}. Т.е. один и тот же тег может быть привязан к разным сущностям.
Как определить грань масштабности, где и какой вариант следует использовать?webinvader писал(а): ↑2017.09.25, 13:53 2) Можно, как вариант, хранить все вместе, т.е в таблице {{%tag}} будут лежать теги на всех языках а к конкретной записи уже привязывать только теги на том языке, который нужен. Но подойдет Вам такой вариант или нет, зависит от масштаба Вашего проекта
p.s.
вот пока схему примерно так представляю, покритикуйте, плз.
Суть в том, что, получается, в таблице post_tag_assn мы должны хранить ещё один атрибут, по которому мы будем определять, к какой части речи(то бишь таблице) он относится.