#sql
в качестве примера, есть 3 словаря русский, белорусский, украинский и 3 описания (или толкование) слов, т.е. когда выбирается русский язык и белорусский для описание (перевода) слова то прога ищет значение слова в таблице на белорусском, для примера на русском вводим слово 'рука' получаем описание на белорусском 'частка цела' (часть тела на белорусском языке). примерно такой механизм, чтоб при смене языков скажем слово с белорусского получало описание на украинском, при поиске слова на украинском получало описание на русском и т.д. как лучше организовать бд, на ум пришло только решение при котором создаю 3 таблицы для каждого языка (если добавятся новые языки новые таблицы и для них), 3 таблицы для каждого языка с описание слов, всего получается 6 таблиц (с каждым новым языком это цифра будет расти) как все это связать между собой? в правильном ли направлении я иду?
Ответы
Ответ 1
На мой взгляд правильно будет создать отдельную таблицу для языков. Пусть это будет таблица Langs. В нем будут столбцы id,lang_code. А для слов уже будет не 3 таблицы а одна(с именем Word) с полями id, word, lang. И как уже поняли связь между ними будет такой Word.lang=>Langs.id. Идем дальше. Осталось таблица Values для описания. Эту таблицу то же оставим одну. А поля уже будут такими id, value, word_id. И как уже поняли связь между таблицами Word и Values будет такой Values.word_id=>Word.id. И сейчас ваша база уже будет универсальной, и при добавлении нового языка вы не будете опять добавлять в базу новые таблицы. Вам нужно будет только в языковой таблице добавить новый язык. И все ваш новый язык к словарю будет готов.
Комментариев нет:
Отправить комментарий