|
|
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
Доброе время суток всем . Есть таблица Country в которой есть поле CountryCode с международными обозначениями государств (ru, uk, de и т.д.). Есть порядка десяти других таблиц, в которых каждая запись может ссылаться на несколько записей из Country.То есть каждой строке из этих десяти таблиц может соответствовать несколько значений из Country(ru, de ). Понятно, что здесь явное отношение n – m. То есть явно необходима связующая таблица. Проблема в том, что выборка информации может вестись в обоих направлениях. Вполне возможен запрос вида: Выдать список всех обьектов из десяти таблиц у которых CountryCode к примеру ru и de. Как вариант можно было-бы ввести в связующую таблицу ещё одно поле, в которое помещать номер таблицы. Ещё один вариант, использовать допустим в этой таблице что нибудь наподобие битовой маски, где каждый бит соответсвует определённой стране. Допустим 1 в первом и в третьем разряде говорит о том, что например присутсвует первая и третья строка из таблицы Country, то есть ru и de. То есть каждой стране соответствует свой разряд. Вообщем это всё рассуждения. Народ подскажите а как на практике решается подобная ситуация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 02:41 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
Лобовое решение - порядка десяти же связующих таблиц и UNION десяти же джойнов - чем не устраивает? Есть еще вариант обобщения десяти таблиц в один регистр объектов, последний раз обсуждался http://www.sql.ru/forum/actualthread.aspx?tid=480889]рядом. Это на случай, если эти десять таблиц обладают общим поведением не только в отношении стран. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 10:00 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
К сожалению таблицы абсолютно разные и обьеденить их в общий реестр обьектов не реально. Вариант с десятью промежуточными таблицами к сожалению тоже нежелателен. Архитекторы умудрились запихнуть туда ещё пятёрку полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 11:04 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
Vlad_AlfТо есть явно необходима связующая таблица. Вот как? Откуда это следует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 11:33 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
To Сергей Васкецов Есть другие тривиальные способы реализаци связей "многие ко многим"? Подскажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 11:48 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
Vlad_Alf По-Вашему, если в таблице X есть N полей, каждое из которых ссылается на таблицу Y, надо создавать дополнительную таблицу Z для связи между X и Y и из таблицы X лишние поля удалять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 11:54 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Vlad_Alf По-Вашему, если в таблице X есть N полей, каждое из которых ссылается на таблицу Y, надо создавать дополнительную таблицу Z для связи между X и Y и из таблицы X лишние поля удалять?По нашему, если в справочнике есть порядка 100 государств - создавать 100 полей не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 12:30 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
Belyесли в справочнике есть порядка 100 государств Вы не ответили на мой вопрос. В любом случае, вообще-то надо исходить из количества и характера возможных связей, а не количества записей в справочнике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 12:35 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
Vlad_AlfК сожалению таблицы абсолютно разные и обьеденить их в общий реестр обьектов не реально.Реально, надо единственно разобраться с первичными ключами. Возможно, что в каждую таблицу будет достаточно добавить поле OBJ_ID, а все остальное в этих таблицах оставить как есть. тогда через таблицу реестров объектов можно будет выбирать то что вас интересует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 12:41 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Belyесли в справочнике есть порядка 100 государств Вы не ответили на мой вопрос. В любом случае, вообще-то надо исходить из количества и характера возможных связей, а не количества записей в справочнике.Вы предлагаете заменить классическую связь "много-ко-многим" - добавлением полей в таблицу. или я что-то не так понял в Ваших постах? и вопроса я Вашего не увидел. Что мешает добавлять полей? Ну... совесть, наверное, перед будущими поколениями, которые потом будут разбираться с такой системой :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 12:46 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
Belyили я что-то не так понял в Ваших постах? Исходите не из моих постов, а из первого поста автора, поля уже есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 13:05 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
Вобщето не поля, а одно поле в каждой записи, но в 10 таблицах Мой случай:см. Рис. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 13:19 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
Vlad_AlfК сожалению таблицы абсолютно разные и обьеденить их в общий реестр обьектов не реально. Вариант с десятью промежуточными таблицами к сожалению тоже нежелателен. Архитекторы умудрились запихнуть туда ещё пятёрку полей.Туда - это куда? В таблицы n – m связей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 13:51 |
|
||
|
В принципе тривиальная задачка
|
|||
|---|---|---|---|
|
#18+
Vlad_AlfВобщето не поля, а одно поле в каждой записи, но в 10 таблицах Мой случай:см. Рис.Ну и что мешает создать еще одну таблицу: OBJECT_LIST в каждой таблице добавить поле OBJECT_ID признаки "из какого государства" уже цеплять к OBJECT_LIST как много-ко-многому ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 14:49 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34896674&tid=1544224]: |
0ms |
get settings: |
11ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
190ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 564ms |

| 0 / 0 |
