Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / В принципе тривиальная задачка / 14 сообщений из 14, страница 1 из 1
26.10.2007, 02:41
    #34896151
Vlad_Alf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
Доброе время суток всем . Есть таблица Country в которой есть поле CountryCode с международными обозначениями государств (ru, uk, de и т.д.). Есть порядка десяти других таблиц, в которых каждая запись может ссылаться на несколько записей из Country.То есть каждой строке из этих десяти таблиц может соответствовать несколько значений из Country(ru, de ). Понятно, что здесь явное отношение n – m. То есть явно необходима связующая таблица. Проблема в том, что выборка информации может вестись в обоих направлениях. Вполне возможен запрос вида: Выдать список всех обьектов из десяти таблиц у которых CountryCode к примеру ru и de. Как вариант можно было-бы ввести в связующую таблицу ещё одно поле, в которое помещать номер таблицы. Ещё один вариант, использовать допустим в этой таблице что нибудь наподобие битовой маски, где каждый бит соответсвует определённой стране. Допустим 1 в первом и в третьем разряде говорит о том, что например присутсвует первая и третья строка из таблицы Country, то есть ru и de. То есть каждой стране соответствует свой разряд. Вообщем это всё рассуждения. Народ подскажите а как на практике решается подобная ситуация
...
Рейтинг: 0 / 0
26.10.2007, 10:00
    #34896410
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
Лобовое решение - порядка десяти же связующих таблиц и UNION десяти же джойнов - чем не устраивает?
Есть еще вариант обобщения десяти таблиц в один регистр объектов, последний раз обсуждался http://www.sql.ru/forum/actualthread.aspx?tid=480889]рядом. Это на случай, если эти десять таблиц обладают общим поведением не только в отношении стран.
...
Рейтинг: 0 / 0
26.10.2007, 11:04
    #34896674
Vlad_Alf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
К сожалению таблицы абсолютно разные и обьеденить их в общий реестр обьектов не реально. Вариант с десятью промежуточными таблицами к сожалению тоже нежелателен. Архитекторы умудрились запихнуть туда ещё пятёрку полей.
...
Рейтинг: 0 / 0
26.10.2007, 11:33
    #34896791
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
Vlad_AlfТо есть явно необходима связующая таблица.
Вот как? Откуда это следует?
...
Рейтинг: 0 / 0
26.10.2007, 11:48
    #34896839
Vlad_Alf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
To Сергей Васкецов

Есть другие тривиальные способы реализаци связей "многие ко многим"? Подскажите.
...
Рейтинг: 0 / 0
26.10.2007, 11:54
    #34896862
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
Vlad_Alf
По-Вашему, если в таблице X есть N полей, каждое из которых ссылается на таблицу Y, надо создавать дополнительную таблицу Z для связи между X и Y и из таблицы X лишние поля удалять?
...
Рейтинг: 0 / 0
26.10.2007, 12:30
    #34897026
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
Сергей Васкецов Vlad_Alf
По-Вашему, если в таблице X есть N полей, каждое из которых ссылается на таблицу Y, надо создавать дополнительную таблицу Z для связи между X и Y и из таблицы X лишние поля удалять?По нашему, если в справочнике есть порядка 100 государств - создавать 100 полей не стоит.
...
Рейтинг: 0 / 0
26.10.2007, 12:35
    #34897043
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
Belyесли в справочнике есть порядка 100 государств
Вы не ответили на мой вопрос. В любом случае, вообще-то надо исходить из количества и характера возможных связей, а не количества записей в справочнике.
...
Рейтинг: 0 / 0
26.10.2007, 12:41
    #34897074
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
Vlad_AlfК сожалению таблицы абсолютно разные и обьеденить их в общий реестр обьектов не реально.Реально, надо единственно разобраться с первичными ключами.

Возможно, что в каждую таблицу будет достаточно добавить поле OBJ_ID, а все остальное в этих таблицах оставить как есть.

тогда через таблицу реестров объектов можно будет выбирать то что вас интересует.
...
Рейтинг: 0 / 0
26.10.2007, 12:46
    #34897097
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
Сергей Васкецов Belyесли в справочнике есть порядка 100 государств
Вы не ответили на мой вопрос. В любом случае, вообще-то надо исходить из количества и характера возможных связей, а не количества записей в справочнике.Вы предлагаете заменить классическую связь "много-ко-многим" - добавлением полей в таблицу.

или я что-то не так понял в Ваших постах?

и вопроса я Вашего не увидел.
Что мешает добавлять полей? Ну... совесть, наверное, перед будущими поколениями, которые потом будут разбираться с такой системой :)
...
Рейтинг: 0 / 0
26.10.2007, 13:05
    #34897178
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
Belyили я что-то не так понял в Ваших постах?
Исходите не из моих постов, а из первого поста автора, поля уже есть.
...
Рейтинг: 0 / 0
26.10.2007, 13:19
    #34897222
Vlad_Alf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
Вобщето не поля, а одно поле в каждой записи, но в 10 таблицах Мой случай:см. Рис.
...
Рейтинг: 0 / 0
26.10.2007, 13:51
    #34897358
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
Vlad_AlfК сожалению таблицы абсолютно разные и обьеденить их в общий реестр обьектов не реально. Вариант с десятью промежуточными таблицами к сожалению тоже нежелателен. Архитекторы умудрились запихнуть туда ещё пятёрку полей.Туда - это куда? В таблицы n – m связей?
...
Рейтинг: 0 / 0
26.10.2007, 14:49
    #34897622
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В принципе тривиальная задачка
Vlad_AlfВобщето не поля, а одно поле в каждой записи, но в 10 таблицах Мой случай:см. Рис.Ну и что мешает создать еще одну таблицу: OBJECT_LIST
в каждой таблице добавить поле OBJECT_ID
признаки "из какого государства" уже цеплять к OBJECT_LIST как много-ко-многому
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / В принципе тривиальная задачка / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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