Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Проектирование БД Новый топик    Ответить
 Таблицы с компаниями и регионами. Связи между таблицами  [new]
Yura1976
Member

Откуда:
Сообщений: 4
Есть 2 таблицы regions и companies. Мне необходимо в приложении выводить страну и город компании. В таблице regions - дерево (id, root, lft, rgt, lvl, name). Как лучше организовать связь между regions и companies? Если в таблице companies создать поле region_id, которое будет являться внешним ключом (фактически это будет город), по которому будет связь с таблицей companies, то страну придется вычислять в коде приложения либо подзапросом в sql-запросе. Если же в таблице companies делать 2 поля (country_id и city_id), то в приложении не нужно будет вычислять страну, но в таком случае то как сделать связь по этим двум полям с таблицей regions? Подскажите, пожалуйста, как правильнее все это реализовать
25 авг 17, 12:53    [20749072]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с компаниями и регионами. Связи между таблицами  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 4676
- либо развернуть иерархию город-страна в плоскую таблицу (таблицы)
- либо делать ссылку на листовое поле иерархии (у вас это город) и при необходимости в запросе получать верхние уровни
25 авг 17, 13:06    [20749108]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с компаниями и регионами. Связи между таблицами  [new]
Yura1976
Member

Откуда:
Сообщений: 4
Дедушка, спасибо за ответ!
Первый вариант - не очень, на мой взгляд, хорошее решение. Ведь в дальнейшем нужно будет фильтровать компании по странам, выводить компании какой-то одной выбранной страны. В принципе все это решаемо, причем несложно, но очень сомневаюсь, что это будет оптимальное решение. К тому же избыточность данных....

Второй вариант - более интересное решение (я его имел ввиду и в своем вопросе). Но тогда чтобы получить страну при выводе компаний, придется или в sql-запросе получать страну подзапросом или в приложении отдельными запросами. Насколько это хорошо? Может быть есть еще какие-нибудь решения (касающиеся структуры таблиц)?
25 авг 17, 13:21    [20749156]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с компаниями и регионами. Связи между таблицами  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 43954

Yura1976
Но тогда чтобы получить страну при выводе компаний, придется или в sql-запросе получать
страну подзапросом или в приложении отдельными запросами. Насколько это хорошо?

Это очень даже хорошо: придётся-таки изучить SQL.

Yura1976
Может быть есть еще какие-нибудь решения (касающиеся структуры таблиц)?

КЛАДР

PS: Ты всерьёз думаешь, что все-все компании расположены в одном-единственном городе
одной-единственной страны?..

Posted via ActualForum NNTP Server 1.5

25 авг 17, 13:33    [20749206]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с компаниями и регионами. Связи между таблицами  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
К тому же избыточность данных....
Это смешная избыточность. К тому же это совсем не избыточность, а необходимость.
28 авг 17, 11:49    [20753165]     Ответить | Цитировать Сообщить модератору
Все форумы / Проектирование БД Ответить