powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Версии изделия (продукта).Как сделать.
7 сообщений из 7, страница 1 из 1
Версии изделия (продукта).Как сделать.
    #33922269
cuvashi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас имеется всего две таблицы для определения состава продукта
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create table m_product
(
 id integer,
 prod_name varchar( 80 )
)
-- здесь расписан состав продукта
create table m_prodcomp
(
 id integer,
 prod_id integer   -- ссылка на m_product
 comp_id integer, -- ссылка на m_product
 amount decimal( 15 , 3 ) --количество
)
Это работает, но проблема в том что состав и количество переодически меняется отчеты за прошлое время постоянно требуются, да и посмотреть что раньше было. Вот и не знаю как лучше сделать сохранение предыдущих версий (спецификаций) продукта. Есть идеи ?
Создавать каждый раз новый продукт при изменении спецификации ?
...
Рейтинг: 0 / 0
Версии изделия (продукта).Как сделать.
    #33922356
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый тупой вариант-впихнуть дату актуальности в таблицу m_prodcomp.
...
Рейтинг: 0 / 0
Версии изделия (продукта).Как сделать.
    #33922433
k2k4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточните -

prod_id integer -- ссылка на m_product
comp_id integer, -- ссылка на m_product

Это не опечатка?
Или comp_id Вы обеспечиваете иерархию ?
...
Рейтинг: 0 / 0
Версии изделия (продукта).Как сделать.
    #33922505
cuvashi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k2k4Уточните -

prod_id integer -- ссылка на m_product
comp_id integer, -- ссылка на m_product

Это не опечатка?
Или comp_id Вы обеспечиваете иерархию ?
Не опечатка, как раз некоторые продукты состоят из составных продуктов.
в m_product не указано поле compound, говорящее о том что он составной
(для простоты).
...
Рейтинг: 0 / 0
Версии изделия (продукта).Как сделать.
    #33922624
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShtockСамый тупой вариант-впихнуть дату актуальности в таблицу m_prodcomp.

самый тупой вариант - денормализовать таблицы
...
Рейтинг: 0 / 0
Версии изделия (продукта).Как сделать.
    #33922886
k2k4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cuvashi k2k4Уточните -

prod_id integer -- ссылка на m_product
comp_id integer, -- ссылка на m_product

Это не опечатка?
Или comp_id Вы обеспечиваете иерархию ?
Не опечатка, как раз некоторые продукты состоят из составных продуктов.
в m_product не указано поле compound, говорящее о том что он составной
(для простоты).

В таком случае, вам придется создать процедуру (пакет) для изменения состава продукта, которое по сути, будет добавлением.
К сожалению, Вам придется ориентироваться по наименованиям продуктов, или ввести суррогатный ключ. В принципе, это классическая задача версионности.
в таблицу m_product добавляем 3 поля:

chronicle_id integer, --id самой первой версии продукта, в первой версии равняется id
latest_flag integer, -- флаг последней версии (1- последняя, 0 - нет)
added_date date --дата добавления

эти поля заполняются в процедуре добавления продукта.

ври изменении состава продукта, в таблицу m_productcomp добавляются новые записи, содержащие новый prod_id соответственно. Той же процедурой.
Этим Вы облегчите составление отчетности.

P.S.Можно сделать аудит таблиц, но это будет слегка "кошмарным" для разработчика отчетов.
...
Рейтинг: 0 / 0
Версии изделия (продукта).Как сделать.
    #33924683
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Есть идеи ?

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


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