powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / учет движения, какую модель выбрать?
12 сообщений из 12, страница 1 из 1
учет движения, какую модель выбрать?
    #39178656
Nikita Bel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача: вести учет передвижения грузовых бункеров.

Жизненный цикл одного бункера: Поставщик -> Наш порт (склад) -> Корабль -> Порт заказчика -> Корабль -> Утилизация
"Бункер грузят на ложку и везут в порт клиента, выгружают, ждут когда клиент наполнит бункер, грузят бункер на лодку, везут на базу.."

1. Поставщик не подотчетная единица, данных о нем нет (нет таблиц типа Поставщики)
2. Нахождение бункера на корабле может длиться долго
3. Наш порт, Корабли, Порты получения - это все объекты , разного типа но сущность одна

В представлении ("View") нужно получить следующие "отчеты", "данные":
1. Картину движения бункеров, где в одной строке и порт исходящий и порт назначения и количество бункеров, примерно вот так:


2. Список всех объектов с указанием количества бункеров на них на текущий момент ("расстановка")
3. Отчет по сумме количества бункеров по типу объекта (сколько всего в Наших портах, на лодках, в Портах назначения)
4. Отчет о наличии бункеров на одном конкретном объекте
5. В реальной задаче будет еще много параметров, по которым тоже нужно будет строить отчеты (типы бункеров, типы клиентов, статусы портов и т.п.)
6. БД используется MariaDB (MySQL)

Предполагаю, есть два варианта записи данных о движении в БД:

1. В таблице движения на одну операцию погрузки одну строчку помещать данные об исходном объекте и объекте назначения


2. В таблице движения на одну операцию погрузки помещать две строки, количество в каждой строке одинаковое, но со знаком минус и плюс для исходного объекта и объекта назначения соответственно.

тут для объединения двух строк по одному признаку используется дополнительная таблица "транзакций", просто как генератор уникальных номеров "операции"

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

Пример отчета "расстановка по объектам"

Модель 1:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT object_id, SUM(qty) as summ
FROM (
SELECT 
    object_out_id as object_id
    ,-1 * qty as qty
    FROM
        dummy_flow2
UNION ALL
SELECT 
    object_in_id as object_id
    ,qty 
    FROM
        dummy_flow2
) AS flow
GROUP BY object_id



Модель 2:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT 
	object_id
	,SUM(qty) as summ
FROM
	dummy_flow AS flow
GROUP BY object_id



Такая запись движения вероятно применима для большого числа процессов, к примеру "движение денежных средств по счетам".
...
Рейтинг: 0 / 0
учет движения, какую модель выбрать?
    #39178721
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, как там бункеры, но вот у вагонов есть номера
и потому просто написать отправили 50 вагонов нельзя, а должен быть их учет по инвентарным номерам

И все таки таблица поставщиков необходима, иначе с кого спрашивать невозврат?
...
Рейтинг: 0 / 0
учет движения, какую модель выбрать?
    #39178722
Nikita BelТакая запись движения вероятно применима для большого числа процессов, к примеру "движение денежных средств по счетам".
"Запись движения денежных средств" по счетам уже давно придумана... веке в 18, если не ошибаюсь... и называется... "двойной записью": одна запись в счете с которого списываются денежные средства + одна запись на такую же сумму в счете на который поступают денежные средства.
Сумма всегда поступает на дебет счета, а списывается - в кредит счета. Разница между дебетом и кредитом = баланс по счету.

Найдите 10 отличий с тем, что Вы пытались построить....
...
Рейтинг: 0 / 0
учет движения, какую модель выбрать?
    #39178746
Nikita Bel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NafНе знаю, как там бункеры, но вот у вагонов есть номера
и потому просто написать отправили 50 вагонов нельзя, а должен быть их учет по инвентарным номерам

не везде есть необходимость учитывать индивидуально каждый объект перемещения. К примеру расстановку "мусорных урн" по городу - конструктив самой урны типовой, самих объектов, отслеживать каждую нет необходимости.

NafИ все таки таблица поставщиков необходима, иначе с кого спрашивать невозврат?
поставщики и владельцы портов назначения тут разные компании по типу.

"Невозврат" наглядно демонстрируется отчетом "остатки бункеров по типу объекта, где тип объекта = порт клиента"
...
Рейтинг: 0 / 0
учет движения, какую модель выбрать?
    #39178753
Nikita Bel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С...кийNikita BelТакая запись движения вероятно применима для большого числа процессов, к примеру "движение денежных средств по счетам".
"Запись движения денежных средств" по счетам уже давно придумана... веке в 18, если не ошибаюсь... и называется... "двойной записью": одна запись в счете с которого списываются денежные средства + одна запись на такую же сумму в счете на который поступают денежные средства.
Сумма всегда поступает на дебет счета, а списывается - в кредит счета. Разница между дебетом и кредитом = баланс по счету.

Найдите 10 отличий с тем, что Вы пытались построить....

так и я о том же - все схоже. вопрос был в том, какую структуру таблиц использовать, что бы получить максимальную простоту и производительность использования, сохраняя возможность построить все отчеты.

А еще лучше, если для построения отчетов запросы будут настолько простыми, что с ними справиться простенький ORM без необходимости писать запросы "вручную".
...
Рейтинг: 0 / 0
учет движения, какую модель выбрать?
    #39178783
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав С...кийуже давно придумана... веке в 18, если не ошибаюсь... и
называется... "двойной записью"
И придумана она для того, чтобы отловить человеческие ошибки при сложении большого
количества чисел. Когда последний раз Вы видели компьютер, ошибшийся при суммировании?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
учет движения, какую модель выбрать?
    #39178789
Nikita BelNafНе знаю, как там бункеры, но вот у вагонов есть номера
и потому просто написать отправили 50 вагонов нельзя, а должен быть их учет по инвентарным номерам

не везде есть необходимость учитывать индивидуально каждый объект перемещения. К примеру расстановку "мусорных урн" по городу - конструктив самой урны типовой, самих объектов, отслеживать каждую нет необходимости.

Ага... А как инвентаризацию потом проводить? Твоя там урна стоит или арендатор свою поставил?

Nikita BelNafИ все таки таблица поставщиков необходима, иначе с кого спрашивать невозврат?
поставщики и владельцы портов назначения тут разные компании по типу.

"Невозврат" наглядно демонстрируется отчетом "остатки бункеров по типу объекта, где тип объекта = порт клиента"
А вот и нет. Невозврат - это то, что выстояло больше положенного срока простоя... а остатки бункеров включают новые поступления, невозврат, бункеры в пределах срока простоя, испорченные по разным причинам и т.д.
И причем тут владелец порта? Бункеры же вы поставляете конкретным фирмам? Или владелец порта распределяет бункеры между поставщиками?
...
Рейтинг: 0 / 0
учет движения, какую модель выбрать?
    #39178792
Dimitry SibiryakovСтанислав С...кийуже давно придумана... веке в 18, если не ошибаюсь... и
называется... "двойной записью"
И придумана она для того, чтобы отловить человеческие ошибки при сложении большого
количества чисел. Когда последний раз Вы видели компьютер, ошибшийся при суммировании?

Компьютера - не видел, а бухгалтеров, не понимающих принципа "двойной записи" и пытающихся сделать "шахер-махер" вижу часто
...
Рейтинг: 0 / 0
учет движения, какую модель выбрать?
    #39178822
Nikita Bel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С...кийNikita Belпропущено...

не везде есть необходимость учитывать индивидуально каждый объект перемещения. К примеру расстановку "мусорных урн" по городу - конструктив самой урны типовой, самих объектов, отслеживать каждую нет необходимости.

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

Сколько к примеру стоило переименование Милиция в "более правильное" Полиция ?

Станислав С...кийИ причем тут владелец порта? Бункеры же вы поставляете конкретным фирмам? Или владелец порта распределяет бункеры между поставщиками?

В том то и дело - что дальше ни какого распределения нет - владелец порта и есть получатель.
...
Рейтинг: 0 / 0
учет движения, какую модель выбрать?
    #39178899
Nikita Bel,

Из всего, что Вами сказано я пока вижу что-то типа упрощенного складского учета, который хорошо ложится на Вашу вторую схему.
...
Рейтинг: 0 / 0
учет движения, какую модель выбрать?
    #39178931
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
учет движения, какую модель выбрать?
    #39186845
Александр Пузаков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikita Bel, подсмотрите в 1с:
Регистр сведений
Регистр накопления
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / учет движения, какую модель выбрать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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