Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Логирование для связки таблиц / 25 сообщений из 25, страница 1 из 1
08.12.2013, 19:42
    #38493372
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
В некотой системе формируются "Посылки" (каждая из них состоит из любого числа предметов 2-х
видов: "Графины" и "Стаканы").
Каждая из посылок может быть отправлена получателю любое количество раз (учитывая
то, что она может быть возвращена, потеряна и т.д.).
Тоже самое касается и приема посылок.
Прием-отправка посылок регистрируется в таблицах "История посылки" и "Отправка-Получение",
т.е. "Отправка-Получение" связана "многие-ко-многим" с таблицей "Посылки".
Вот схема:


После того как посылка доставлена адресату - отправителю приходит отчет о каждой состовляющей
каждой посылки (например:посылка № 4556321 принята такого-то числа, тем-то -
успешно доставлено 8 стаканов, 9-й лопнул, успешно доставлено 2 графина, а один разбит).
Соответсвенно потом можно сделать выборки подробные, и узнать что было разбито, повреждено,
что доставлено целым и т.д.
Отчет для каждого вида товара одинаковый:
- статус: успешно-неуспешно
- дата проверки (у каждого предмета своя)
- комментарий в свободной форме

Вопрос - куда и как прикрутить эту таблицу с отчетами?
Не могу никак понять как это сделать.
Похоже, что где то косяк в общей схеме...
Подскажите пожалуйста.
...
Рейтинг: 0 / 0
08.12.2013, 19:46
    #38493373
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Вот схема
...
Рейтинг: 0 / 0
08.12.2013, 20:05
    #38493390
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
У меня получается вот такой монстр
...
Рейтинг: 0 / 0
08.12.2013, 20:06
    #38493391
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Есть желание упростить схему и избавится от дублирующихся связок.
...
Рейтинг: 0 / 0
08.12.2013, 20:11
    #38493394
Dmitry V. Liseev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Если мы отслеживаем каждый стакан, то и связь должна быть с таблицей стаканов.
...
Рейтинг: 0 / 0
08.12.2013, 20:14
    #38493398
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Dmitry V. LiseevЕсли мы отслеживаем каждый стакан, то и связь должна быть с таблицей стаканов.
Дык есть - через таблицу "Стаканы_Отчеты"
...
Рейтинг: 0 / 0
08.12.2013, 20:19
    #38493403
Dmitry V. Liseev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Таблица "отчёт доставки" лишняя.
...
Рейтинг: 0 / 0
08.12.2013, 20:21
    #38493404
Dmitry V. Liseev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Максим НDmitry V. LiseevЕсли мы отслеживаем каждый стакан, то и связь должна быть с таблицей стаканов.
Дык есть - через таблицу "Стаканы_Отчеты"Вот и надо её напрямую связать с "история посылки".
...
Рейтинг: 0 / 0
08.12.2013, 20:23
    #38493407
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Dmitry V. LiseevМаксим Нпропущено...

Дык есть - через таблицу "Стаканы_Отчеты"Вот и надо её напрямую связать с "история посылки".
А общий статус доставки всей посылки хранить так же в "История_Посылки"?
...
Рейтинг: 0 / 0
08.12.2013, 20:26
    #38493408
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Dmitry V. LiseevТаблица "отчёт доставки" лишняя.

получилось так:
...
Рейтинг: 0 / 0
08.12.2013, 20:34
    #38493411
Dmitry V. Liseev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Максим НDmitry V. Liseevпропущено...
Вот и надо её напрямую связать с "история посылки".
А общий статус доставки всей посылки хранить так же в "История_Посылки"?В таблице "отправка-получение" сделать отдельно дату отправки, дату получения. Насколько я понял, там регистрируется отправка сразу партии посылок, тогда её так и надо назвать, иначе зачем там много ко многим? Если дата получения указана, то посылка (партия) доставлена. Иначе в пути или потеряна.
...
Рейтинг: 0 / 0
08.12.2013, 20:39
    #38493415
Dmitry V. Liseev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
А что за дата проверки у каждого предмета? Их не сразу при получении посылки проверяют?
...
Рейтинг: 0 / 0
09.12.2013, 06:51
    #38493595
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Dmitry V. LiseevВ таблице "отправка-получение" сделать отдельно дату отправки, дату получения.

Получается, что одна из этих дат будет в любом случае всегда пустовать? Т.к. для отправленных посылок не будет даты получения, а для принятых даты отправки.
...
Рейтинг: 0 / 0
09.12.2013, 06:51
    #38493596
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Dmitry V. Liseev,

Да, у каждого предмета своя дата.
...
Рейтинг: 0 / 0
09.12.2013, 06:52
    #38493597
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Смущает, что теперь в одной таблице "История_посылки" хранится 2 факта: факт приема отправки и факт установки.
...
Рейтинг: 0 / 0
09.12.2013, 06:54
    #38493598
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Dmitry V. LiseevНасколько я понял, там регистрируется отправка сразу партии посылок
Да, отправка пачками, у каждой отправки много харктеристик.
...
Рейтинг: 0 / 0
09.12.2013, 09:38
    #38493663
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Максим НВот схема

Максим, почему стаканы и графины ссылаются на посылки?
Должно наверное наоборот быть, стаканы без посылок могут существовать, посылки без стаканов— нет.
...
Рейтинг: 0 / 0
09.12.2013, 09:54
    #38493677
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
MasterZivМаксим НВот схема

Максим, почему стаканы и графины ссылаются на посылки?
Должно наверное наоборот быть, стаканы без посылок могут существовать, посылки без стаканов— нет.
Одна посылка может содержать множество стаканов и графинов, поэтому и связь такая. И еще плюс если нужно будет добавить новый вид отправляемых вещей, то не нужно будет изменять таблицу с посылками, только добавить новую.
...
Рейтинг: 0 / 0
09.12.2013, 12:58
    #38493971
Dmitry V. Liseev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Максим НDmitry V. LiseevВ таблице "отправка-получение" сделать отдельно дату отправки, дату получения.

Получается, что одна из этих дат будет в любом случае всегда пустовать? Т.к. для отправленных посылок не будет даты получения, а для принятых даты отправки.Любая отправленная посылка должна быть получена. Это одна операция. И запись одна. Нельзя получить посылку, не отправив её. Если посылка отправлена, но не получена, значит она ещё в пути. Либо потеряна.
...
Рейтинг: 0 / 0
09.12.2013, 13:17
    #38493994
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Dmitry V. LiseevМаксим Нпропущено...


Получается, что одна из этих дат будет в любом случае всегда пустовать? Т.к. для отправленных посылок не будет даты получения, а для принятых даты отправки.Любая отправленная посылка должна быть получена. Это одна операция. И запись одна. Нельзя получить посылку, не отправив её. Если посылка отправлена, но не получена, значит она ещё в пути. Либо потеряна.

Угу, согласен, сюда же я могу добавить и "Дату распаковки" посылки ?
...
Рейтинг: 0 / 0
09.12.2013, 13:33
    #38494016
Dmitry V. Liseev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Максим НDmitry V. Liseevпропущено...
Любая отправленная посылка должна быть получена. Это одна операция. И запись одна. Нельзя получить посылку, не отправив её. Если посылка отправлена, но не получена, значит она ещё в пути. Либо потеряна.

Угу, согласен, сюда же я могу добавить и "Дату распаковки" посылки ?Да. А также юзеров, которые эти операции выполняли, вес посылки, стоимость и вообще всё, что относится к этой операции отправки-получения.
...
Рейтинг: 0 / 0
09.12.2013, 13:41
    #38494022
Dmitry V. Liseev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Туда же можно планируемую дату доставки, фактическую дату доставки. Если посылка доехала, но не доставлена (адресат не проживает по указанному адресу или другая причина), то возврат можно уже оформить второй такой-же записью. Причём, сделать связь между ними.
...
Рейтинг: 0 / 0
09.12.2013, 13:42
    #38494025
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Dmitry V. LiseevМаксим Нпропущено...


Угу, согласен, сюда же я могу добавить и "Дату распаковки" посылки ?Да. А также юзеров, которые эти операции выполняли, вес посылки, стоимость и вообще всё, что относится к этой операции отправки-получения.

Понял. Меня немного смущает, что эта таблица получается "разорванной", т.е. в ней указаны отправленные посылки и обработанные у адресата и полученные посылки и обработанные здесь на месте.
Или это предрасудки?
...
Рейтинг: 0 / 0
09.12.2013, 14:01
    #38494058
Dmitry V. Liseev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Максим НDmitry V. Liseevпропущено...
Да. А также юзеров, которые эти операции выполняли, вес посылки, стоимость и вообще всё, что относится к этой операции отправки-получения.

Понял. Меня немного смущает, что эта таблица получается "разорванной", т.е. в ней указаны отправленные посылки и обработанные у адресата и полученные посылки и обработанные здесь на месте.
Или это предрасудки?Если Вы регистрируете полёты самолётов, Вы же не будете заводить таблицы отдельно для взлёта и отдельно для посадки? Или в банковских проводках, если сумма снимается с одного счёта, то она обязательно поступает на другой счёт. Если это единая сущность, то логично делать её одной записью.
...
Рейтинг: 0 / 0
16.12.2013, 19:31
    #38502636
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование для связки таблиц
Дмитрий, спасибо большое, прояснили ситуацию.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Логирование для связки таблиц / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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