Модель базы данных подхода к упаковке продуктов - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть эта структура для процесса моих продуктов. 1 - В таблице «продукт» определены идентификаторы продуктов. 2 - В таблице «product_pack» указывается упаковка, в которой должны быть товары их определили. 3 - В таблице «pack_content» каждый пакет, в котором есть товары с количеством. 4 - В 'pack_stock' запасы каждой упаковки хранятся с одинаковым или разным типом упаковки (каждая из пакетов является строкой). 5 - В 'pack_stok_content' хранится содержимое записей pack_stock с номером покупки Facor.

Я хочу знать, это правильный путь к go, или моя модель неверна, или есть лучшая модель или решение для этого?

CREATE TABLE products ( id int(255) NOT NULL AUTO_INCREMENT, barCode varchar(255) COLLATE utf8_bin NOT NULL, prodName varchar(500) COLLATE utf8_bin NOT NULL, stock double NOT NULL DEFAULT '0', unit_id int, PRIMARY KEY (id), UNIQUE KEY barCode (barCode) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

CREATE TABLE product_pack ( id int(11) NOT NULL AUTO_INCREMENT, label varchar(255) COLLATE utf8_bin NOT NULL, count float NOT NULL, base_price int(11) NOT NULL, price int(11) NOT NULL, stock float NOT NULL, status tinyint(1) NOT NULL DEFAULT '1', percentage double DEFAULT '0', PRIMARY KEY (id), KEY id (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

CREATE TABLE pack_content ( id int(11) NOT NULL AUTO_INCREMENT, pack_id int(11) DEFAULT NULL, product_id int(11) DEFAULT NULL, count int(11) DEFAULT NULL, PRIMARY KEY (id), KEY pack_id (pack_id), KEY product_id (product_id), CONSTRAINT pack_content_ibfk_1 FOREIGN KEY (pack_id) REFERENCES product_pack (id) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT pack_content_ibfk_2 FOREIGN KEY (product_id) REFERENCES products (id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

CREATE TABLE pack_stock ( id int(11) NOT NULL AUTO_INCREMENT, pack_id int(11) DEFAULT NULL, isSelled bit(1) DEFAULT NULL, PRIMARY KEY (id), KEY pack_id (pack_id), CONSTRAINT pack_stock_ibfk_1 FOREIGN KEY (pack_id) REFERENCES product_pack (id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

CREATE TABLE pack_stock_content ( id int(11) NOT NULL AUTO_INCREMENT, pack_stock_id int(11) DEFAULT NULL, factor_id int(11) DEFAULT NULL, count int(11) DEFAULT NULL, PRIMARY KEY (id), KEY pack_stock_id (pack_stock_id), KEY factor_id (factor_id), CONSTRAINT pack_stock_content_ibfk_1 FOREIGN KEY (pack_stock_id) REFERENCES pack_stock (id) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT pack_stock_content_ibfk_2 FOREIGN KEY (factor_id) REFERENCES new_prefactor (id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

CREATE TABLE new_prefactor ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(250) DEFAULT NULL, product_source_id int(11) DEFAULT NULL, product_arrival_date int(11) DEFAULT NULL, factor_registration_date int(11) DEFAULT NULL, factor_registration_number int(11) DEFAULT NULL, date int(11) DEFAULT NULL, image varchar(250) DEFAULT NULL, description varchar(400) DEFAULT NULL, price int(11) DEFAULT NULL, status int(11) DEFAULT NULL, payment_type_id int(11) DEFAULT NULL, PRIMARY KEY (id), KEY status (status), KEY product_source_id (product_source_id), KEY payment_type_id (payment_type_id), CONSTRAINT new_prefactor_ibfk_1 FOREIGN KEY (status) REFERENCES factor_status (id) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT new_prefactor_ibfk_2 FOREIGN KEY (product_source_id) REFERENCES product_source (id) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT new_prefactor_ibfk_3 FOREIGN KEY (payment_type_id) REFERENCES payment_type (id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

...