|
|
|
Реализация связи один ко многим, а эти многие к другим многим
|
|||
|---|---|---|---|
|
#18+
Есть объекты компании-магазины-сотрудники. В одной компании есть много магазинов, в каждом магазине много сотрудников. Я так понимаю делать нужно так: таблица "сотрудники" ссылкается на таблицу "магазины", которая в свою очередь ссылается на таблицу "компании" (рис1). Есть 2-й вариант - добавить еще одну связь "сотрудники" --> "компании" (рис2) Нужно будет делать запросы, в которых нужно будет вывести только компании и сотрудники, и если использовать 2-й вариант, то можно обойтись только одним join-ом, а не двумя. Минус этого вариант - нужно хранить дополнительную колонку с айдишником в таблицу "сотрудники". Поэтому вопрос стоит ли использовать 2-й вариант? И вообще принято ли так делать? Книжки по проектированию еще не успел дочитать..( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2009, 17:21 |
|
||
|
Реализация связи один ко многим, а эти многие к другим многим
|
|||
|---|---|---|---|
|
#18+
1. ФизЛица (здесь поля характеризующие физ. лицо как сущность) 2. Компании (организации) 3. Магазины (имеют ссылку на организацию) 4. Сотрудники: -- ссылка на физ лицо -- ссылка на магазин -- дата начала труд. отношений -- дата окончания -- другие поля С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2009, 17:34 |
|
||
|
Реализация связи один ко многим, а эти многие к другим многим
|
|||
|---|---|---|---|
|
#18+
Naf1. ФизЛица (здесь поля характеризующие физ. лицо как сущность) 2. Компании (организации) 3. Магазины (имеют ссылку на организацию) 4. Сотрудники: -- ссылка на физ лицо -- ссылка на магазин -- дата начала труд. отношений -- дата окончания -- другие поля С уважением, Naf Т.е. вариант1, с той лишь разницей, что часть данных о сотрудниках вынесена в отдельный объект "ФизЛица" ?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2009, 17:53 |
|
||
|
Реализация связи один ко многим, а эти многие к другим многим
|
|||
|---|---|---|---|
|
#18+
blestНужно будет делать запросы, в которых нужно будет вывести только компании и сотрудники, и если использовать 2-й вариант, то можно обойтись только одним join-ом, а не двумя. Минус этого вариант - нужно хранить дополнительную колонку с айдишником в таблицу "сотрудники". Поэтому вопрос стоит ли использовать 2-й вариант? И вообще принято ли так делать?Если делать только ради каких-то мифических запросов, то, скорее всего, особого смысла нет. Но 2 вариант плох в любом случае, так как корректность данных не диктуется самой схемой. Отсюда следует риск несовпадения компании сотрудника с компанией магазина, в котором он работает. Для того, чтобы этого избежать, надо удалить связь от компании к сотруднику, а связь от магазина к сотруднику должна быть по 2 атрибутам: идентификатору компании и самого магазина, а не только по идентификатору магазина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2009, 18:08 |
|
||
|
Реализация связи один ко многим, а эти многие к другим многим
|
|||
|---|---|---|---|
|
#18+
ChAа связь от магазина к сотруднику должна быть по 2 атрибутам: идентификатору компании и самого магазина, а не только по идентификатору магазина. Может я не понял, но вроде бы вы этим самым и изобразили вариант 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2009, 18:19 |
|
||
|
Реализация связи один ко многим, а эти многие к другим многим
|
|||
|---|---|---|---|
|
#18+
blestМожет я не понял, но вроде бы вы этим самым и изобразили вариант 2Нет.ChAсвязь от магазина к сотруднику должна быть по 2 атрибутам: идентификатору компании и самого магазина, а не только по идентификатору магазина.На картинке же 2-го варианта связь между магазином и сотрудником явно подразумевается только по одному атрибуту - идентификатору магазина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2009, 18:54 |
|
||
|
Реализация связи один ко многим, а эти многие к другим многим
|
|||
|---|---|---|---|
|
#18+
ChAblestМожет я не понял, но вроде бы вы этим самым и изобразили вариант 2Нет.ChAсвязь от магазина к сотруднику должна быть по 2 атрибутам: идентификатору компании и самого магазина, а не только по идентификатору магазина.На картинке же 2-го варианта связь между магазином и сотрудником явно подразумевается только по одному атрибуту - идентификатору магазина. А.. понял. Т.е. это 2-й вариант(в таблице "сотрудники" хранить айдишник "компании"), но в правильной реализации схемы? И как я понял ради каких-то мифических запросов, то, скорее всего, особого смысла нет т.е. так делать не стоит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2009, 19:13 |
|
||
|
Реализация связи один ко многим, а эти многие к другим многим
|
|||
|---|---|---|---|
|
#18+
Еще одно уточнение, в магазинах работают 20% сотрудников, остальные просто работают в компаниях, т.е. ссылаться будут на один и тот же магазин(помеченный как "не магазин"). Тогда вариант с 2-мя атрибутами от магазина не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2009, 21:09 |
|
||
|
Реализация связи один ко многим, а эти многие к другим многим
|
|||
|---|---|---|---|
|
#18+
blestЕще одно уточнение, в магазинах работают 20% сотрудников, остальные просто работают в компаниях, т.е. ссылаться будут на один и тот же магазин(помеченный как "не магазин")."Панеслась кривая в щавель..." Вы уж не таите, озвучьте сразу все "уточнения", зачем хвост по частям рубить ?blestТогда вариант с 2-мя атрибутами от магазина не подходит.Это почему же ? Если для каждой компании есть магазин, который "не магазин", то всё точно так же. Хотя возникает смутное подозрение, что на самом деле это должны быть не магазины, а подразделения компании, некоторые из которых называются магазинами("Магазин №1", "Магазин №2", ...) или имеют тип подразделения - "магазин". В общем, без описания предметной области это уже гадание на кофейной гуще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2009, 23:48 |
|
||
|
Реализация связи один ко многим, а эти многие к другим многим
|
|||
|---|---|---|---|
|
#18+
blestNaf1. ФизЛица (здесь поля характеризующие физ. лицо как сущность) 2. Компании (организации) 3. Магазины (имеют ссылку на организацию) 4. Сотрудники: -- ссылка на физ лицо -- ссылка на магазин -- дата начала труд. отношений -- дата окончания -- другие поля С уважением, Naf Т.е. вариант1, с той лишь разницей, что часть данных о сотрудниках вынесена в отдельный объект "ФизЛица" ?!Можно и так сказать, а можно сказать, что это связь между Подразделенями (теперь уж так назовем) и ФизЛицами со своими параметрами. Связь многие-к-многим, например ФизЛицо может быть сотрудником одном подразделении одной орг. одновременно ( или позже) в другой. Кстати, сразу совет, если будете сюда товарный учет прикручивать, то сделайте отдельный справочник Склады (ваши Магазины) со ссылкой Подразделение. На складах ведите движения товаров, в Подразделениях учитывайте затраты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2009, 06:50 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36184820&tid=1543086]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
161ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 453ms |

| 0 / 0 |
