|
|
|
дублирование данных
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые форумчане, помогите пожалуйста достроить концептуальную модель, указать ошибки, добавить что-то. Проектирую БД впервые, поэтому не судите строго. Моя проблема заключается в том, что я не знаю как избежать дублирования данных и наоборот. Проектирую БД для курьерской службы. Курьерская служба предоставляет услуги доставки корреспонденции и грузов в пределах страны. Оплата услуг может осуществляться отправителем, получателем, 3-ей стороной. Клиент может выступать в качестве любой из этих сторон. Различается доставка, как в пределах города, так и междугородняя. В случае доставки в черте города, доставку выполняет курьер самостоятельно. При междугородней доставке груза, привлекаются транспортные компании. Маршрут и способ доставки определяется курьерской службой самостоятельно. Дело в том, что когда клиент является получателем, возникает дублирование инф. в атрибутах посылки, помогите грамотно связать клиента и посылку. Заранее спасибо! Бизнес-процессы: 1. Формирование перечня оказываемых услуг 2. заключение договора с транспортными компаниями 3. заключение договора с клиентом 4. получение посылки с рук клиента 6. составление маршрута посылки 7. получение оплаты за оказанные услуги 8. выдача документов по оказанной услуге 9. транспортировка посылки 10. доставка посылки 11. отслеживание местонахождения посылки Задачи, решаемые проектируемой базой данных: Задачи по вводу данных 1. Ввод (редактирование, удаление) информации о клиенте (отправитель, получатель или третья сторона) [менеджер] 2. Ввод (редактирование, удаление) информации о менеджере [директор] 3. Ввод информации о договоре [менеджер, директор] 4. Изменение статуса договора [менеджер] 5. Ввод (редактирование) информации об оплате [кассир] 6. Ввод (редактирование, удаление) информации об адресе назначения [менеджер] 7. Ввод (редактирование, удаление) информации о посылке (тип, вес, габариты) [менеджер, кассир] 8. Ввод (редактирование, удаление) информации о дате и времени отправки [менеджер] 9. Ввод (редактирование, удаление) информации о типе доставки (транспорт) [менеджер] 10. Ввод (редактирование, удаление) информации об используемом транспорте [менеджер] Задачи по обработке данных 1. Автоматическое изменение статуса договора при поступлении оплаты 2. расчет себестоимости доставки 3. учет посылок Задачи по выводу данных 1. Формирование прайс-листа предлагаемых работ на текущий момент времени [менеджер] 2. формирование договора на доставку посылки [менеджер] 3. формирование квитанции об оплате услуг [менеджер, кассир] 4. Формирование сводного отчета о договорах, заключённых за определенный период времени [менеджер, директор] 5. Формирование графика отправки посылок [менеджер, директор] 6. Формирование списка доступного транспорта на определенное время [менеджер] 7. формирование отчета о доставке [менеджер] 8. формирование списка необходимых доставок [менеджер] 9. расчет гарантированного времени доставки [менеджер] 10. расчет оптимального маршрута [менеджер] 11. расчет стоимости услуги [кассир] 12. создание списка погружаемых посылок в транспорт с учетом их веса, габаритов и адреса назначения [менеджер] 13. Формирование отчета о курьерах, свободных на текущий момент времени [менеджер] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 16:18 |
|
||
|
дублирование данных
|
|||
|---|---|---|---|
|
#18+
isec Дело в том, что когда клиент является получателем, возникает дублирование инф. в атрибутах посылки, помогите грамотно связать клиента и посылку. Заранее спасибо! Неправильная нормализация. Все живые существа должны быть занесены в книгу жизни... то бишь базу данных ровно один раз. Жизнь в базе протекает сугубо под ID. Важно понять что для этого не существует ни харда, ни софта. Только грамотное пользование базой (в смысле обучение персонала на пинках) не превратит книгу жизни в помойку. Если ваши клиенты не умеют пользоваться ДБ - вы им решительно ничем не поможете. Это фундаментально. СУБД беззащитна перед дураком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 17:21 |
|
||
|
дублирование данных
|
|||
|---|---|---|---|
|
#18+
deblogger, пожалуйста помогите, как выполнить эту нормализацию, как связать посылку и клиента, при этом чтоб клиент был универсальным, т.е. мог быть и получателем посылки, и отправителем, и вообще третьей стороной, независимо от посылки. Какие должны быть атрибуты посылки?( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 17:39 |
|
||
|
дублирование данных
|
|||
|---|---|---|---|
|
#18+
isecчтоб клиент был универсальным, т.е. мог быть и получателем посылки, и отправителем, и вообще третьей стороной, независимо от посылки. Какие должны быть атрибуты посылки? Атрибут "ссылка на отправителя", атрибут "ссылка на получателя" и атрибут "ссылка на левого хрена". И таки да, все эти ссылки будут вести на одну и ту же таблицу "морды". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 18:13 |
|
||
|
дублирование данных
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovАтрибут "ссылка на отправителя", атрибут "ссылка на получателя" и атрибут "ссылка на левого хрена". И таки да, все эти ссылки будут вести на одну и ту же таблицу "морды". Извините, а так можно делать? в случае если клиент будет отправителем, то куда будет вести ссылка на получателя, если в таблице "Клиент" будет всего одна запись - ФИО клиента и тип - отправитель. Препод требует сделать так, чтоб не было дублирования данных, типа отправитель и получатель ничем не отличаются друг от друга и их можно залить в одну таблицу "Клиент" и указать там тип клиента (отправитель, получатель, левое лицо). Якобы фирме все равно, кто платит за доставку( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 18:29 |
|
||
|
дублирование данных
|
|||
|---|---|---|---|
|
#18+
isecDimitry SibiryakovАтрибут "ссылка на отправителя", атрибут "ссылка на получателя" и атрибут "ссылка на левого хрена". И таки да, все эти ссылки будут вести на одну и ту же таблицу "морды". Извините, а так можно делать? в случае если клиент будет отправителем, то куда будет вести ссылка на получателя, если в таблице "Клиент" будет всего одна запись - ФИО клиента и тип - отправитель. Препод требует сделать так, чтоб не было дублирования данных, типа отправитель и получатель ничем не отличаются друг от друга и их можно залить в одну таблицу "Клиент" и указать там тип клиента (отправитель, получатель, левое лицо). Якобы фирме все равно, кто платит за доставку( Не будет таблицы "клиент" и тем более в ней не будет типа "отправитель", "получатель" и т.п. Будет таблица "Персона" (как понимаю, для простоты у Вас там только физлица) - в нее будут заносить отправителей, получателей, клиентов и т.п. в таблице "Услуга" - будут атрибуты "отправитель" (ссылка на персону), "получатель" (ссылка на персону), "клиент" (ссылка на персону). Значения этих атрибутов могут совпадать, а могут не совпадать между собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 18:42 |
|
||
|
дублирование данных
|
|||
|---|---|---|---|
|
#18+
isecПрепод требует сделать так, чтоб не было дублирования данных, типа отправитель и получатель ничем не отличаются друг от друга и их можно залить в одну таблицу "Клиент" и указать там тип клиента (отправитель, получатель, левое лицо). Якобы фирме все равно, кто платит за доставку В таком случае в таблице "Посылки" будет только "ссылка на того кто платит", а в таблице "Клиенты" совсем не нужен тип клиента поскольку "пофиг кто платит". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 18:43 |
|
||
|
дублирование данных
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, Спасибо, попробую как вы советуете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 19:17 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38296773&tid=1541222]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 16ms |
| total: | 258ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...