|
|
|
Заказ и заказчики
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Я не волшебник, я только учусь :-) Поэтому прошу сильно не пинать. Вопрос по организации структуры данных. Есть таблица заказов. 1.Номер заказа работ 2.Дата заказа работ 3.Адрес участка работ Заказчиками работ могут быть как физические так и юридические лица. В случае с физическими лицами, структура таблицы следующая: 1.ФИО 2.телефоны 3.Адрес 4.e-mail В случае с юридическими лицами: 1.Наименование предприятия 2.ФИО Директора 3.ФИО Контактного лица 4.Телефоны 6.Адрес 7.e-mail. Итого 3 таблицы. Как прикрутить заказчиков к таблице заказов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2013, 16:03 |
|
||
|
Заказ и заказчики
|
|||
|---|---|---|---|
|
#18+
Dim On, 1 вариант - обьединить таблицы физических и юридических лиц (судя по Вашей схеме, там разница в 2 поля) 2 вариант - сделать сквозную таблицу "Контрагенты", в "физические лица", "юридические лица" и "заказы" добавить поле "ID контрагента" (опять же судя по Вашей схеме, в таблицах "Физические лица" и "юридические лица" у Вас суррогатных ключей все равно нет, так что ID контрагента будет играть еще и эту роль). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2013, 16:22 |
|
||
|
Заказ и заказчики
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, спасибо Вам за проявленное внимание! с первым вариантом все понятно. А вот со вторым по подробнее можно? Какую роль будет играть "контрагенты"? А вообще, существует ли стандартный алгоритм решения подобных ситуаций? Может быть обработку возложить на программу. В "заказах" разместить поле с индикатором типа заказчика (юридическое, физическое), и в зависимости от значения подсовывать нужную таблицу? "заказы" id = key type_cust id_cust -> в зависимости от type_cust "... лицо":id date_start date_end address_site и т.д. "Физлицо" id = key fio и т.д. "Юрлицо" id = key company и т.д. Хотя с точки зрения проектировщика базы это будет не правильно. Структура базы данных не должна зависеть от программной реализации обработки этой базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2013, 23:55 |
|
||
|
Заказ и заказчики
|
|||
|---|---|---|---|
|
#18+
Выбирайте http://design-pattern.ru/patterns/single-table-inheritance.html http://design-pattern.ru/patterns/class-table-inheritance.html http://design-pattern.ru/patterns/concrete-table-inheritance.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 06:46 |
|
||
|
Заказ и заказчики
|
|||
|---|---|---|---|
|
#18+
Dim On, Объедини в одну таблицу. Если нужен будет отбор добавь признак юр/физ лица в таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 09:04 |
|
||
|
Заказ и заказчики
|
|||
|---|---|---|---|
|
#18+
Dim On, наличие желания - уже плюс. Смотрите: 1. Заказчики как юрики, так и физики имеют контактную инфу (телефон, адрес, мыло). а) она - далеко не полна, и соответственно, рано или поздно вопрос "встанет", например такой: "Как сохранить контрагента с аськой (и т.д. чего не предусмотрено), если других контактов нет? б) каждый контрагент может имет несколько контактных данных ОДНОГО типа (например 3 телефона)... в) ... более того, разные в разные периоды работы с данной прогой! ... подсказки: 1.а) Заметьте, что использована новая "сущность": контактные данные. 1.б) Заметьте, что связь между этой сущностью и "контрагентом" типа "один ко многим"... 1.в) Заметьте, что Сущность "контактные данные" может быть представлена разным способом, в том числе и семейством таблиц/отношений. 2. Ну собственно, есть смысел подумать АНАЛОГИЧНО и про сущность "Контрагенты"... которая также распадается по меньшей мере на два больших класса: юрики и физики. У которых акромя Сущности "контактные данные" и "Заказы" в общем-то ничего общего ничего общего и нетути... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 09:29 |
|
||
|
Заказ и заказчики
|
|||
|---|---|---|---|
|
#18+
Arhat109, Да, кстати. В своем первом посту вы забыли самое главное: таблицу связи между Заказами и Заказчиками. ... но я понимаю, это так, "мелочи". :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 09:32 |
|
||
|
Заказ и заказчики
|
|||
|---|---|---|---|
|
#18+
Arhat109Да, кстати. В своем первом посту вы забыли самое главное: таблицу связи между Заказами и Заказчиками. Вообще-то в изначальном посте ТС и спрашивает, как организовать связь между заказами и заказчиками. Dim On Как прикрутить заказчиков к таблице заказов? И зачем таблица связи - не очень понятно. Вы считаете, заказ может относиться к нескольким заказчикам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 10:54 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38198040&tid=1541330]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 469ms |

| 0 / 0 |
