Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Заказ и заказчики / 9 сообщений из 9, страница 1 из 1
25.03.2013, 16:03
    #38197479
Dim On
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заказ и заказчики
Доброго времени суток!

Я не волшебник, я только учусь :-) Поэтому прошу сильно не пинать.

Вопрос по организации структуры данных.

Есть таблица заказов.
1.Номер заказа работ
2.Дата заказа работ
3.Адрес участка работ


Заказчиками работ могут быть как физические так и юридические лица.

В случае с физическими лицами, структура таблицы следующая:
1.ФИО
2.телефоны
3.Адрес
4.e-mail

В случае с юридическими лицами:
1.Наименование предприятия
2.ФИО Директора
3.ФИО Контактного лица
4.Телефоны
6.Адрес
7.e-mail.

Итого 3 таблицы. Как прикрутить заказчиков к таблице заказов?
...
Рейтинг: 0 / 0
25.03.2013, 16:22
    #38197526
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заказ и заказчики
Dim On,

1 вариант - обьединить таблицы физических и юридических лиц (судя по Вашей схеме, там разница в 2 поля)
2 вариант - сделать сквозную таблицу "Контрагенты", в "физические лица", "юридические лица" и "заказы" добавить поле "ID контрагента" (опять же судя по Вашей схеме, в таблицах "Физические лица" и "юридические лица" у Вас суррогатных ключей все равно нет, так что ID контрагента будет играть еще и эту роль).
...
Рейтинг: 0 / 0
25.03.2013, 23:55
    #38198040
Dim On
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заказ и заказчики
Кот Матроскин, спасибо Вам за проявленное внимание!
с первым вариантом все понятно.
А вот со вторым по подробнее можно?

Какую роль будет играть "контрагенты"? А вообще, существует ли стандартный алгоритм решения подобных ситуаций?

Может быть обработку возложить на программу. В "заказах" разместить поле с индикатором типа заказчика (юридическое, физическое), и в зависимости от значения подсовывать нужную таблицу?

"заказы"
id = key
type_cust
id_cust -> в зависимости от type_cust "... лицо":id
date_start
date_end
address_site
и т.д.

"Физлицо"
id = key
fio
и т.д.

"Юрлицо"
id = key
company
и т.д.


Хотя с точки зрения проектировщика базы это будет не правильно. Структура базы данных не должна зависеть от программной реализации обработки этой базы.
...
Рейтинг: 0 / 0
26.03.2013, 06:46
    #38198131
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заказ и заказчики
...
Рейтинг: 0 / 0
26.03.2013, 09:04
    #38198174
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заказ и заказчики
Dim On,

Объедини в одну таблицу. Если нужен будет отбор добавь признак юр/физ лица в таблицу.
...
Рейтинг: 0 / 0
26.03.2013, 09:29
    #38198196
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заказ и заказчики
Dim On, наличие желания - уже плюс.

Смотрите:
1. Заказчики как юрики, так и физики имеют контактную инфу (телефон, адрес, мыло).
а) она - далеко не полна, и соответственно, рано или поздно вопрос "встанет", например такой: "Как сохранить контрагента с аськой (и т.д. чего не предусмотрено), если других контактов нет?

б) каждый контрагент может имет несколько контактных данных ОДНОГО типа (например 3 телефона)...
в) ... более того, разные в разные периоды работы с данной прогой!

... подсказки:
1.а) Заметьте, что использована новая "сущность": контактные данные.
1.б) Заметьте, что связь между этой сущностью и "контрагентом" типа "один ко многим"...
1.в) Заметьте, что Сущность "контактные данные" может быть представлена разным способом, в том числе и семейством таблиц/отношений.

2. Ну собственно, есть смысел подумать АНАЛОГИЧНО и про сущность "Контрагенты"... которая также распадается по меньшей мере на два больших класса: юрики и физики. У которых акромя Сущности "контактные данные" и "Заказы" в общем-то ничего общего ничего общего и нетути...
...
Рейтинг: 0 / 0
26.03.2013, 09:32
    #38198199
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заказ и заказчики
Arhat109,

Да, кстати. В своем первом посту вы забыли самое главное: таблицу связи между Заказами и Заказчиками.
... но я понимаю, это так, "мелочи". :)
...
Рейтинг: 0 / 0
26.03.2013, 10:54
    #38198307
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заказ и заказчики
Arhat109Да, кстати. В своем первом посту вы забыли самое главное: таблицу связи между Заказами и Заказчиками.

Вообще-то в изначальном посте ТС и спрашивает, как организовать связь между заказами и заказчиками.
Dim On Как прикрутить заказчиков к таблице заказов?

И зачем таблица связи - не очень понятно. Вы считаете, заказ может относиться к нескольким заказчикам?
...
Рейтинг: 0 / 0
26.03.2013, 11:10
    #38198332
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заказ и заказчики
Кот Матроскин,

невнимательность - тут заразна, блин! :)
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Заказ и заказчики / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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