Мой подход, я думаю, будет (я сам в процессе его создания):
Возможно (1) У продукта есть (N) имен (в зависимости от языка, при условии, что у вас только один столбец)описывая язык, например, «es», «en»)
[ Product ]—(1)—————(N)-[ProductName]
| id | | name |
| language |
Может быть, это лучше, чем Product-Language в отношениях N: M:
[ Product ]-(N)—————————(M)-[Language]
| id | | |iso_code|
(translation) | name |
[ Product ]<————[ProdTranslation]———>[language]
| id | | name | |iso_code|
|default name?| | name |--- (name of language: "English")
Другой вариант - рассмотретькаждый перевод продукта означает «тип» продукта (подкласс).Логическая модель выглядит следующим образом:
[ Product ]
| id |-(1)————(1)-[ EnglishProduct ]
|default name?| | name (in eng.) |
| |
| |-(1)——(1)-[FrenchProduct]
| | | name(in fr.)|
При реализации этого в реляционной базе данных вы можете либо a) иметь 3 таблицы (в этом примере больше с большим количеством языков), либо b) поместить все это в одну таблицу.Это зависит от того, сколько языков у вас будет, размер имени / описания, производительность и т. Д.
[ Product ]
| id |
| name_en |
| name_fr |
| name_de |
Код, запрашивающий базу данных, будет знать используемый язык, а затем запросить имя изправая колонка.