|
|
|
азличные связи
|
|||
|---|---|---|---|
|
#18+
Добрый день. Возник вопрос при проектировании БД на MySql. Имею 3 таблицы 1. Countries - | ID | Name | 2. Organizations - | ID | Name | Country | CustomCol1 | CustomCol2 | ... | 3. Companies - | ID | Name | Organization | CustomCol1 | CustomCol2 | ... | Вопросы: 1. Организации могут быть международними и не принадлежать к какой либо стране - Правильно ли хранить связь в таблице если она может быть пустой? А если нет то как? 2. Есть еще 5 таблиц (Пример : News, Articles, Tenders и т.п) которые могут принадлежать к одной из трёх таблиц(Countries , Organizations , Companies) - Как правильно хранить такие связи? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2013, 17:42:29 |
|
||
|
азличные связи
|
|||
|---|---|---|---|
|
#18+
>> 1. Организации могут быть международними и не принадлежать к какой либо стране - Правильно ли хранить связь в таблице если она может быть пустой? А если нет то как? я бы сделал специальную "Страну" -- "International" и подвязал бы к ней все меж-государтственые организации. (болшие) преимушества -- полнота связи и полнота проверки. (небольшой) недостаток -- Интернатионал -- не настояшая страна, возможно для уточнения придется добавить флаг -- "настоаяшая_страна" 1/0 (или 'Y'/'N'). >> 2. Есть еще 5 таблиц (Пример : News, Articles, Tenders и т.п) которые могут принадлежать к одной из трёх таблиц(Countries , Organizations , Companies) - Как правильно хранить такие связи? идеальных решений нет. можно сделать одну большую таблицу "СВЯЗИ" и в ней хранить Тип1 (News|Articles|Tenders), Ид1, Тип2(Countries|Organizations|Companies), Ид2 Можно 3 отдельные таблицы для связок, можно 9 таблиц для связок, можно добавить 3 колонки внешних ключей в каждую из таблиц News|Articles|Tenders. можно добавить 2 колонки внешних ключей Тип(Countries|Organizations|Companies), ИД в каждую из таблиц News|Articles|Tenders. Еше имеет смысл посмотреть что рекомендует фреймворк на котором вы пишете клиента -- некоторые современые фрейворки поддерживают такие гибкие связи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2013, 20:29:56 |
|
||
|
азличные связи
|
|||
|---|---|---|---|
|
#18+
1. Спасибо! 2. Использую Django , javajdbcможно добавить 3 колонки внешних ключей в каждую из таблиц News|Articles|Tenders. можно добавить 2 колонки внешних ключей Тип(Countries|Organizations|Companies), ИД в каждую из таблиц News|Articles|Tenders. Вопрос в том , нормально ли такое делать ? Ведь если мне надо будет дальше по связи идти то мне надо будет проверять или тип или какая из колонок не пустая (Cтраны , организации или компании) То-есть если я хочу выбрать принадлежность к какой либо стране , организации или компании мне нужно будет делать это двумя запросами? или я вас не правильно понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2013, 16:09:38 |
|
||
|
азличные связи
|
|||
|---|---|---|---|
|
#18+
DDeath, 1. посмотрите как Дянго советует хранить такие связки. (я не в курсе) 2. Приведите пример стандартных запросов, словами, а далее мыс вами построим 2-3 варианта. Обычно все можно будет выташить одним запросом при все вариантах. Надо хорошо разобраться с индексами. Начните экспериментировать сами Сам СКЛ будет не самуй простой, но ничего сверхсложного. Тут как раз Дянго может (я почти уверен в этом) помочь генерировать сложные связки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2013, 17:22:36 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=213&tid=1836227]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 338ms |

| 0 / 0 |
