powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите построить связь
25 сообщений из 87, страница 1 из 4
Помогите построить связь
    #39859021
m0m0k0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДД коллеги! Никак не могу сообразить как лучше сделать,
имеется две таблицы "Регионы" и "Города", каждый город относится к какому-то региону, у каждого региона есть город, который является административным центром.

Все идеи сводятся к тому, чтобы сделать связь многие к многим с дополнительными ограничениями, но не нравится мне это решение...
Может есть идеи
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859025
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m0m0k0Все идеи сводятся к тому, чтобы сделать связь многие к многим с дополнительными ограничениями, но не нравится мне это решение...
Может есть идеи
Все идеи это какие и почему?
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859026
m0m0k0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iOracleDev,

Идея:
Сделать связь многие ко многим, дополнительно в связующей таблице добавить административный центр
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859027
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m0m0k0,

вообще-то та же Москва - самостоятельный регион )
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859028
m0m0k0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критик,

ну на МОскве города не заканчиваются
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859035
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m0m0k0но не нравится мне это решение...

Потому что оно неправильное. В зависимости от конечной задачи решения могут варьироваться,
но ни одно из них не включает отношение M:N.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859037
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m0m0k0имеется две таблицы "Регионы" и "Города", каждый город относится к какому-то региону, у каждого региона есть город, который является административным центром.

В городе ссылка на регион (у каждого города строго один регион получится), в регионе ссылка на город (он будет тоже строго один). Единственное дополнительно сделать проверку, чтобы в в поле "город"(главный город) региона нельзя было поставить город, который к этому региону не относится. Чем не нравится решение?


m0m0k0Сделать связь многие ко многим, дополнительно в связующей таблице добавить административный центр

Прикольный совет ) Это как? город может в 2 региона входить? Не очень хороший совет.
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859040
Gerros
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m0m0k0, будьте проще:

Регионыкод_регионаназвание_регионакод_админ_центра...
Городакод_городаназвание_городакод_региона...
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859041
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiВ городе ссылка на регион (у каждого города строго один регион получится), в регионе ссылка на город (он будет тоже строго один). Единственное дополнительно сделать проверку, чтобы в в поле "город"(главный город) региона нельзя было поставить город, который к этому региону не относится. Чем не нравится решение?
Уроборос какой то получился, зачем кусать свой собственный хвост?
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859042
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gerros,

Что такое код_админ_центра?
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859048
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDevзачем кусать свой собственный хвост?

Потому что это простейшее и надёжнейшее решение. Остальные идут под бритву старого араба.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859049
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m0m0k0,

Регион - главная, город - подчиненная (связь один ко многим, в регионе много городов)...
Признак центра:
- или в самом городе (может быть код из классификатора 0-Адм. центр, 1-просто город, 2- деревня, ...) что проще и шире и наверное правильнее...
- или в регионе код города (его ID в таблице город), тоже вариант (как у Gerros), хотя он мне и не нравится
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859050
Gerros
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev, Foreign Key на код_города
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859051
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПотому что это простейшее и надёжнейшее решение. Остальные идут под бритву старого араба.
Зацикливание самого на себя это простейшее и надежнейшее решение? В иерархическом классификаторе тоже?

Чем не нравится поле/поля с типом территориального образования и типов таких типов может быть много?
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859054
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag Признак центра:
- или в самом городе (может быть код из классификатора 0-Адм. центр, 1-просто город, 2- деревня, ...) что проще и шире и наверное правильнее...
Если нужен именно административный центр, то это флаг 1- для административного центра и отсутствие значения для всех остальных, если нужно гарантировать чтобы таких центров в регионе не было больше одного можно построить уникальный ключ.
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859059
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDevзачем кусать свой собственный хвост?
Есть такой хитрый прием - причем рабочий ;-)

iOracleDevЗацикливание самого на себя это простейшее и надежнейшее решение? В иерархическом классификаторе тоже?

Это не есть зацикливание. Это связи разного типа. И ничего страшного в этом нет.
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859078
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiЕсть такой хитрый прием - причем рабочий ;-)
6 на 9, не самая удобная позиция

SergueiЭто не есть зацикливание. Это связи разного типа. И ничего страшного в этом нет.
Имеем город Б ссылающийся по внешнему ключу на регион А и в то же время регион А ссылается также внешним ключом на город Б, мне такой секас не нравится ))
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859079
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критиквообще-то та же Москва - самостоятельный регион )
Только вот это город, а не регион, точнее город Федерального значения и если не заводить такой регион, то уроборос останется без хвоста ))
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859087
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отдельную таблицу запили:
adm_center2region
Код: sql
1.
2.
gorod int -- админ.центр
region int
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859107
m0m0k0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag,

В первом случае может быть два адм. центра у региона, не подходит
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859108
m0m0k0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iOracleDev,

Построить уникальный ключ на флаг, это как?
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859154
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDevУроборос какой то получился, зачем кусать свой собственный хвост?
Циклическая связь — это как раз недостаток малозначительный.
Более существенно то, что с такой схемой не получится нормально добавить Москву, Санкт-Петербург или Байконур.
Поэтому лучше добавить третью таблицу связей — таблица подчинения с полями (код_региона, код_столицы, тип_иерархии). Тип иерархии будет определять категорию, в которой указанный город является столицей (административная, финансовая, туристическая и т.д.).
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859199
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Поэтому лучше добавить третью таблицу связей — таблица подчинения с полями (код_региона, код_столицы, тип_иерархии). Тип иерархии будет определять категорию, в которой указанный город является столицей (административная, финансовая, туристическая и т.д.).
Можно и так сделать, только не уверен, что это проще, этот функционал шире чем было заявлено было. Решение предлагалось строго под потребности. И регион москва и т.д. Это не проблема. Таблица связи многие ко многим кстати этот вопрос тоже не не решает.
Про моногорода я бы сделал регион с названием гМосква и у него бы поставил признак "самостоятельный регион" и запретил бы в города проставлять этот региогн более чем 1 раз.
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859212
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Поэтому лучше добавить третью таблицу связей — таблица подчинения с полями (код_региона, код_столицы, тип_иерархии). Тип иерархии будет определять категорию, в которой указанный город является столицей (административная, финансовая, туристическая и т.д.).
Можно и так сделать, только не уверен, что это проще, этот функционал шире чем было заявлено было. Решение предлагалось строго под потребности. И регион москва и т.д. Это не проблема. Таблица связи многие ко многим кстати этот вопрос тоже не не решает.
Про моногорода я бы сделал регион с названием гМосква и у него бы поставил признак "самостоятельный регион" и запретил бы в города проставлять этот региогн более чем 1 раз.
...
Рейтинг: 0 / 0
Помогите построить связь
    #39859275
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.с такой схемой не получится нормально добавить Москву, Санкт-Петербург или Байконур.

А их и не надо добавлять "нормально". Достаточно "в соответствии с потребностями задачи".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 87, страница 1 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите построить связь
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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