Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Реализация связи один ко многим, а эти многие к другим многим / 11 сообщений из 11, страница 1 из 1
08.09.2009, 17:21
    #36184645
blest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация связи один ко многим, а эти многие к другим многим
Есть объекты компании-магазины-сотрудники. В одной компании есть много магазинов, в каждом магазине много сотрудников.
Я так понимаю делать нужно так: таблица "сотрудники" ссылкается на таблицу "магазины", которая в свою очередь ссылается на таблицу "компании" (рис1).


Есть 2-й вариант - добавить еще одну связь "сотрудники" --> "компании" (рис2)


Нужно будет делать запросы, в которых нужно будет вывести только компании и сотрудники, и если использовать 2-й вариант, то можно обойтись только одним join-ом, а не двумя.
Минус этого вариант - нужно хранить дополнительную колонку с айдишником в таблицу "сотрудники".

Поэтому вопрос стоит ли использовать 2-й вариант? И вообще принято ли так делать?
Книжки по проектированию еще не успел дочитать..(
...
Рейтинг: 0 / 0
08.09.2009, 17:34
    #36184682
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация связи один ко многим, а эти многие к другим многим
1. ФизЛица (здесь поля характеризующие физ. лицо как сущность)
2. Компании (организации)
3. Магазины (имеют ссылку на организацию)
4. Сотрудники:
-- ссылка на физ лицо
-- ссылка на магазин
-- дата начала труд. отношений
-- дата окончания
-- другие поля
С уважением, Naf
...
Рейтинг: 0 / 0
08.09.2009, 17:53
    #36184749
blest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация связи один ко многим, а эти многие к другим многим
Naf1. ФизЛица (здесь поля характеризующие физ. лицо как сущность)
2. Компании (организации)
3. Магазины (имеют ссылку на организацию)
4. Сотрудники:
-- ссылка на физ лицо
-- ссылка на магазин
-- дата начала труд. отношений
-- дата окончания
-- другие поля
С уважением, Naf

Т.е. вариант1, с той лишь разницей, что часть данных о сотрудниках вынесена в отдельный объект "ФизЛица" ?!
...
Рейтинг: 0 / 0
08.09.2009, 18:08
    #36184796
ChA
ChA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация связи один ко многим, а эти многие к другим многим
blestНужно будет делать запросы, в которых нужно будет вывести только компании и сотрудники, и если использовать 2-й вариант, то можно обойтись только одним join-ом, а не двумя.
Минус этого вариант - нужно хранить дополнительную колонку с айдишником в таблицу "сотрудники".

Поэтому вопрос стоит ли использовать 2-й вариант? И вообще принято ли так делать?Если делать только ради каких-то мифических запросов, то, скорее всего, особого смысла нет. Но 2 вариант плох в любом случае, так как корректность данных не диктуется самой схемой. Отсюда следует риск несовпадения компании сотрудника с компанией магазина, в котором он работает. Для того, чтобы этого избежать, надо удалить связь от компании к сотруднику, а связь от магазина к сотруднику должна быть по 2 атрибутам: идентификатору компании и самого магазина, а не только по идентификатору магазина.
...
Рейтинг: 0 / 0
08.09.2009, 18:19
    #36184820
blest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация связи один ко многим, а эти многие к другим многим
ChAа связь от магазина к сотруднику должна быть по 2 атрибутам: идентификатору компании и самого магазина, а не только по идентификатору магазина.
Может я не понял, но вроде бы вы этим самым и изобразили вариант 2
...
Рейтинг: 0 / 0
08.09.2009, 18:54
    #36184902
ChA
ChA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация связи один ко многим, а эти многие к другим многим
blestМожет я не понял, но вроде бы вы этим самым и изобразили вариант 2Нет.ChAсвязь от магазина к сотруднику должна быть по 2 атрибутам: идентификатору компании и самого магазина, а не только по идентификатору магазина.На картинке же 2-го варианта связь между магазином и сотрудником явно подразумевается только по одному атрибуту - идентификатору магазина.
...
Рейтинг: 0 / 0
08.09.2009, 19:13
    #36184927
blest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация связи один ко многим, а эти многие к другим многим
ChAblestМожет я не понял, но вроде бы вы этим самым и изобразили вариант 2Нет.ChAсвязь от магазина к сотруднику должна быть по 2 атрибутам: идентификатору компании и самого магазина, а не только по идентификатору магазина.На картинке же 2-го варианта связь между магазином и сотрудником явно подразумевается только по одному атрибуту - идентификатору магазина.

А.. понял.
Т.е. это 2-й вариант(в таблице "сотрудники" хранить айдишник "компании"), но в правильной реализации схемы? И как я понял ради каких-то мифических запросов, то, скорее всего, особого смысла нет
т.е. так делать не стоит?
...
Рейтинг: 0 / 0
08.09.2009, 21:09
    #36185087
blest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация связи один ко многим, а эти многие к другим многим
Еще одно уточнение, в магазинах работают 20% сотрудников, остальные просто работают в компаниях, т.е. ссылаться будут на один и тот же магазин(помеченный как "не магазин").
Тогда вариант с 2-мя атрибутами от магазина не подходит.
...
Рейтинг: 0 / 0
08.09.2009, 23:48
    #36185185
ChA
ChA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация связи один ко многим, а эти многие к другим многим
blestЕще одно уточнение, в магазинах работают 20% сотрудников, остальные просто работают в компаниях, т.е. ссылаться будут на один и тот же магазин(помеченный как "не магазин")."Панеслась кривая в щавель..." Вы уж не таите, озвучьте сразу все "уточнения", зачем хвост по частям рубить ?blestТогда вариант с 2-мя атрибутами от магазина не подходит.Это почему же ? Если для каждой компании есть магазин, который "не магазин", то всё точно так же. Хотя возникает смутное подозрение, что на самом деле это должны быть не магазины, а подразделения компании, некоторые из которых называются магазинами("Магазин №1", "Магазин №2", ...) или имеют тип подразделения - "магазин". В общем, без описания предметной области это уже гадание на кофейной гуще.
...
Рейтинг: 0 / 0
09.09.2009, 06:50
    #36185333
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация связи один ко многим, а эти многие к другим многим
blestNaf1. ФизЛица (здесь поля характеризующие физ. лицо как сущность)
2. Компании (организации)
3. Магазины (имеют ссылку на организацию)
4. Сотрудники:
-- ссылка на физ лицо
-- ссылка на магазин
-- дата начала труд. отношений
-- дата окончания
-- другие поля
С уважением, Naf

Т.е. вариант1, с той лишь разницей, что часть данных о сотрудниках вынесена в отдельный объект "ФизЛица" ?!Можно и так сказать, а можно сказать, что это связь между Подразделенями (теперь уж так назовем) и ФизЛицами со своими параметрами. Связь многие-к-многим, например ФизЛицо может быть сотрудником одном подразделении одной орг. одновременно ( или позже) в другой.
Кстати, сразу совет, если будете сюда товарный учет прикручивать, то сделайте отдельный справочник Склады (ваши Магазины) со ссылкой Подразделение. На складах ведите движения товаров, в Подразделениях учитывайте затраты.
...
Рейтинг: 0 / 0
09.09.2009, 14:51
    #36186446
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация связи один ко многим, а эти многие к другим многим
МОЙ AVAST заявил, что здесь имеются ссылки на вредоносные сайты. А у Вас? м.б. это паранойя?
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Реализация связи один ко многим, а эти многие к другим многим / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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