powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / дублирование данных
9 сообщений из 9, страница 1 из 1
дублирование данных
    #38296477
isec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые форумчане, помогите пожалуйста достроить концептуальную модель, указать ошибки, добавить что-то. Проектирую БД впервые, поэтому не судите строго. Моя проблема заключается в том, что я не знаю как избежать дублирования данных и наоборот. Проектирую БД для курьерской службы.
Курьерская служба предоставляет услуги доставки корреспонденции и грузов в пределах страны.
Оплата услуг может осуществляться отправителем, получателем, 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. Формирование отчета о курьерах, свободных на текущий момент времени [менеджер]
...
Рейтинг: 0 / 0
дублирование данных
    #38296600
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
isec Дело в том, что когда клиент является получателем, возникает дублирование инф. в атрибутах посылки, помогите грамотно связать клиента и посылку. Заранее спасибо!


Неправильная нормализация. Все живые существа должны быть занесены в книгу жизни... то бишь базу данных ровно один раз. Жизнь в базе протекает сугубо под ID.

Важно понять что для этого не существует ни харда, ни софта. Только грамотное пользование базой (в смысле обучение персонала на пинках) не превратит книгу жизни в помойку.

Если ваши клиенты не умеют пользоваться ДБ - вы им решительно ничем не поможете. Это фундаментально. СУБД беззащитна перед дураком.
...
Рейтинг: 0 / 0
дублирование данных
    #38296633
isec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deblogger,

пожалуйста помогите, как выполнить эту нормализацию, как связать посылку и клиента, при этом чтоб клиент был универсальным, т.е. мог быть и получателем посылки, и отправителем, и вообще третьей стороной, независимо от посылки. Какие должны быть атрибуты посылки?(
...
Рейтинг: 0 / 0
дублирование данных
    #38296727
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
isecчтоб клиент был универсальным, т.е. мог быть и получателем посылки, и
отправителем, и вообще третьей стороной, независимо от посылки. Какие должны быть атрибуты
посылки?
Атрибут "ссылка на отправителя", атрибут "ссылка на получателя" и атрибут "ссылка на
левого хрена". И таки да, все эти ссылки будут вести на одну и ту же таблицу "морды".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
дублирование данных
    #38296773
isec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovАтрибут "ссылка на отправителя", атрибут "ссылка на получателя" и атрибут "ссылка на
левого хрена". И таки да, все эти ссылки будут вести на одну и ту же таблицу "морды".


Извините, а так можно делать? в случае если клиент будет отправителем, то куда будет вести ссылка на получателя, если в таблице "Клиент" будет всего одна запись - ФИО клиента и тип - отправитель. Препод требует сделать так, чтоб не было дублирования данных, типа отправитель и получатель ничем не отличаются друг от друга и их можно залить в одну таблицу "Клиент" и указать там тип клиента (отправитель, получатель, левое лицо). Якобы фирме все равно, кто платит за доставку(
...
Рейтинг: 0 / 0
дублирование данных
    #38296799
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
isecDimitry SibiryakovАтрибут "ссылка на отправителя", атрибут "ссылка на получателя" и атрибут "ссылка на
левого хрена". И таки да, все эти ссылки будут вести на одну и ту же таблицу "морды".


Извините, а так можно делать? в случае если клиент будет отправителем, то куда будет вести ссылка на получателя, если в таблице "Клиент" будет всего одна запись - ФИО клиента и тип - отправитель. Препод требует сделать так, чтоб не было дублирования данных, типа отправитель и получатель ничем не отличаются друг от друга и их можно залить в одну таблицу "Клиент" и указать там тип клиента (отправитель, получатель, левое лицо). Якобы фирме все равно, кто платит за доставку(
Не будет таблицы "клиент" и тем более в ней не будет типа "отправитель", "получатель" и т.п.
Будет таблица "Персона" (как понимаю, для простоты у Вас там только физлица) - в нее будут заносить отправителей, получателей, клиентов и т.п.
в таблице "Услуга" - будут атрибуты "отправитель" (ссылка на персону), "получатель" (ссылка на персону), "клиент" (ссылка на персону). Значения этих атрибутов могут совпадать, а могут не совпадать между собой.
...
Рейтинг: 0 / 0
дублирование данных
    #38296804
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
isecПрепод требует сделать так, чтоб не было дублирования данных, типа отправитель
и получатель ничем не отличаются друг от друга и их можно залить в одну таблицу "Клиент" и
указать там тип клиента (отправитель, получатель, левое лицо). Якобы фирме все равно, кто
платит за доставку
В таком случае в таблице "Посылки" будет только "ссылка на того кто платит", а в таблице
"Клиенты" совсем не нужен тип клиента поскольку "пофиг кто платит".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
дублирование данных
    #38296851
isec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин,

Спасибо, попробую как вы советуете
...
Рейтинг: 0 / 0
дублирование данных
    #38296852
isec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

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


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