@bitande
PHP

Как хранить словарь (слово и перевод) если на сайте много пользователй?

Здравствуйте.

Подскажите как решить такую проблему:

Есть сайт - что-то вроде словаря. Много пользователей. Каждый пользователь может добавлять слова и переводы. Все языки, все направления. Переводы с русского на английский и наоборот, к примеру.

Нужно как то хранить слова и их переводы в базе.

Я думал сделать одну таблицу в которой и хранить слово, перевод и id пользователя которому все это принадлежит.

Но возникает проблема с дублированием слов. Пытаюсь разобраться как хранить слова и переводы отдельно. Но проблема в том что пользователи могут добавлять свои переводы и я не могу понять как все это связать вместе.

В общем стоит ли заморачиваться или можно хранить все в одной таблице? Если хранить в одной таблице многие слова будут дублироваться.
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ответы на вопрос 2
а если сделать так:
Таблицы:
слова
ид, слово
перевод
ид, ид_слова, перевод
перевод
ид, ид_перевода, ид_пользователя
При добавлении слова и перевода, проверять его наличие в первой таблице, если нет добавлять если есть, писать только перевод.
Как то так. 3 таблица возможно не нужна, пользователя можно писать во вторую
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега Веб-разработка
{PHP, MySql, HTML, JS, CSS} developer
вообще надо учитывать что одно слово может быть как со многими переводами, так и со многими пользователями, то же самое верно и для слов на другом языке (я бы не стал их выделять как "перевод", это тоже просто слова), кроме того слова сами по себе уникальны, плодить дубли на каждого пользователя слишком жирно, по этому логичнее завести структуру типа:
table `words`
id | word | languageid

table `wordlinks`
id | ownerid | fromlanguageid | tolanguageid

тогда будет более универсально, в базе будут уникальные слова, а переводы будут с привязкой к владельцу.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы