产品包装方式数据库模型

时间:2020-04-21 13:13:13

标签: mysql database-design database-relations


我的产品流程具有这种结构。
1-在“产品”表中定义了产品的标识。
2-在“ product_pack”表中,必须定义包装中必须包含产品的包装的标识。
3-在“ pack_content”表中,每个包含计数产品的包装。
4-在“ pack_stock”中,以相同或不同包装类型存储的每个包装的库存(每个包装都是一行)。
5-在'pack_stok_content'中,存储着带有购买号的pack_stock记录的内容。


我想知道这是正确的方法还是我的模型错误,或者有更好的模型或解决方案吗?

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

0 个答案:

没有答案