powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите, в какую таблицу добавить поле
9 сообщений из 9, страница 1 из 1
Подскажите, в какую таблицу добавить поле
    #37351195
Yaroslav82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Есть следующая структура таблиц


Таблица Countries хранит в себе сведения о странах (код страны, русское и английское название). Таблица Languages хранит сведения о языках (код языка, наименование культуры и признак того, активен ли на сайте данный язык, сейчас их только два: русский и английский). Таблица Countries_Languages ставит в соответствие каждой стране ряд ее языков (например, Бельгия - Немецкий, Французский).

Сейчас логика работы следующая. Когда пользователь заходит на сайт, по коду страны, который хранится в его профиле, выбирается язык, заданный для его страны. Если язык страны неактивен, то по умолчанию устанавливается английский (например, заходит пользователь из Бельгии, ни один из его языков неактивен, устанавливается английский. Заходит пользователь из Казахстана, казахский язык неактивен, русский активен, устанавливается русский и т.д.).

Возникло требование, чтобы можно было задавать язык, который будет устанавливаться в случае, если родной язык пользователя неактивен. Для этого необходимо добавить поле default_lang_id. Вопрос заключается в том, в какую таблицу его лучше добавить. Если добавить в таблицу Countries_Languages, будет дубляж данных, вроде такого
country_id lang_id default_lang_id21 1031 103321 1036 1033
Если добавить в таблицу Languages, дубляжа не будет, но тогда не получится установить связи между языками.
Если же добавить в таблицу Countries, дубляжа опять же не будет, но получится циклическая связь между таблицами.

Подскажите, пожалуйста, куда все-таки лучше добавить поле. Всем заранее спасибо
...
Рейтинг: 0 / 0
Подскажите, в какую таблицу добавить поле
    #37351288
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если появится ситуация, что по умолчанию язык неактивен?
...
Рейтинг: 0 / 0
Подскажите, в какую таблицу добавить поле
    #37351341
Yaroslav82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Naf,

Такая ситуация не возникнет, потому что язык по умолчанию будет выбираться из раскрывающегося списка, а туда заносятся только активные языки
...
Рейтинг: 0 / 0
Подскажите, в какую таблицу добавить поле
    #37351384
sergei64_89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я б в таблицу страны добавил.null значение думаю не страшно в данном случае.
...
Рейтинг: 0 / 0
Подскажите, в какую таблицу добавить поле
    #37351541
Yaroslav82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sergei64_89,

NULL там и так не будет, поскольку для каждой страны будет задан язык по умолчанию. Проблема в том, что если добавить default_lang_id в Countries, получится циклическая связь



или в этом ничего страшного нет? или эту связь вообще можно не делать?
...
Рейтинг: 0 / 0
Подскажите, в какую таблицу добавить поле
    #37351664
sergei64_89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы видите тут какие то коллизии(при удалении,...)?
p.s таблица язык страны нет первичного ключа!
...
Рейтинг: 0 / 0
Подскажите, в какую таблицу добавить поле
    #37351682
Yaroslav82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sergei64_89,

В принципе нет, просто такая связь мне немного непривычна.

Первичного ключа и правда нет, просто в такие таблицы я их обычно не добавляю, хотя знаю, что по требованиям надо (кстати, насколько мне известно, так делают многие)
...
Рейтинг: 0 / 0
Подскажите, в какую таблицу добавить поле
    #37351694
sergei64_89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну эта связи у тебя в теории реляционных баз данных квалифицируются как.многие ко многим и 1 ко многим(класс сущности многим обязательный).
...
Рейтинг: 0 / 0
Подскажите, в какую таблицу добавить поле
    #37351972
Yaroslav82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sergei64_89,

ок, спасибо
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите, в какую таблицу добавить поле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]