Я не знаю, какой тип системы ведения журнала аудита мне нужен для оформления моих таблиц.
Иногда сотрудники меняют название продукта, цену, опции или дополнительные функции.Но мы не храним историю того, что было обновлено или удалено .. как справиться с этой ситуацией?
Использовать аудит (таблицу истории) или тип управления версиями?Пожалуйста, приведите пример дизайна моих таблиц.
Продукт содержит один или несколько вариантов.Опция может иметь дополнительные или без дополнительных параметров.
Пример оформления таблиц:
Таблица продуктов:
mysql> select * from products;
+-----------+------------+
| ProductID | Name |
+-----------+------------+
| 1 | Hard Drive |
+-----------+------------+
Таблица параметров: (Есть два варианта из ProductID 1)
mysql> select * from options;
+----------+-----------+---------+-------+
| OptionID | ProductID | Name | Price |
+----------+-----------+---------+-------+
| 1 | 1 | Samsung | 55.00 |
| 2 | 1 | Hitachi | 20.00 |
+----------+-----------+---------+-------+
Таблица дополнений: (OptionID 2 имеет два дополнения ... OptionID 1 без Extra)
mysql> select * from extras;
+---------+----------+------------------+--------+
| ExtraID | OptionID | Name | Price |
+---------+----------+------------------+--------+
| 1 | 2 | 10 Year Warranty | 100.00 |
| 2 | 2 | 20 Year Warranty | 250.00 |
+---------+----------+------------------+--------+
Если я изменю название продукта (products.name
) ...Должны ли опции и дополнительные данные (независимо от того, с каким ProductID связан) автоматически добавляться в таблицу истории или использовать метод контроля версий?
У некоторых продуктов около 20 опций, у каждого - около 10 дополнительных.
У меня более 300 000 строк в таблицах опций и дополнительных функций.
У меня есть таблицы Order и Order_Items. В таблице Order_Items он содержит список OptionID (FK), но я включил имя параметра ... Так что, если я изменю имя параметра (options.Name
), тогдазаказ будет выполнен.