![]() |
|
Модераторы: skyboy |
![]()
|
|
| DDeath |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 11.7.2008 Репутация: нет Всего: нет |
Добрый день. Возник вопрос при проектировании БД на 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) - Как правильно хранить такие связи? Спасибо. |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 4 Всего: 42 |
Создай страну "международная" -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 4 Всего: 42 |
В зависимости от требований.
В таком случае можно ввести еще и фиктивные Организацию и Компанию. А связи хранить как многие ко многим. Итого получается такая иерархия Страна -> Организация -> Компания При этом у нас есть страна "Весь мир" которой могут принадлежать Организации. И есть "Фиктивная организация" которой могут принадлежать компании. Таким образом ты выстроишь полную цепочку связей. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| DDeath |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 11.7.2008 Репутация: нет Всего: нет |
1. Спасибо!
2. Не совсем вас понял.
Не выйдет , если с новостями это может получится то с остальными элементами не выйдет.
Можно пример ? |
||||
|
|||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 4 Всего: 42 |
Почему? Чем они от новостей отличаются-то? Таблица GlobalUniqueId id uniq PK typeof enum(Countries , Organizations , Companies) Теперь в каждую из 3х таблиц добавляется поле guid (т.е. каждая запись имеет глобальный уникальный идентификатор для всех 3х таблиц) Далее ты свои новости, тендеры и прочее связываешь по этому guid Если отношения многие к одному, то пойдет и так, достаточно добавить в таблицы новостей/тендеров/артиклей поле владельца (guid) Если многие ко многим, то нужны промежуточные таблицы (1,2,3...9 в зависимости от...) для связей. Более точно не распишу, поскольку зависит от условий (может ли новость/тендер/артикль принадлежать одновременно нескольким объектам, из одной или из разных таблиц и т.д.) -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |