Use SKU as item primary key

This commit is contained in:
Dita Aji Pratama 2025-02-28 17:46:12 +07:00
parent 4edf86a866
commit 4f2f612c94

View File

@ -1,22 +1,22 @@
CREATE TABLE `item` ( CREATE TABLE `item` (
`id` INT(11) NOT NULL AUTO_INCREMENT, `sku` VARCHAR(60) NOT NULL,
`name` LONGTEXT DEFAULT NULL, `name` LONGTEXT DEFAULT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`sku`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Reselling item price, not including production item price, service item price, and subscription item price -- Reselling item price, not including production item price, service item price, and subscription item price
CREATE TABLE `item_price` ( CREATE TABLE `item_price` (
`id` INT(11) NOT NULL AUTO_INCREMENT, `id` INT(11) NOT NULL AUTO_INCREMENT,
`item` INT(11) NOT NULL, `sku` VARCHAR(60) NOT NULL,
`type` VARCHAR(4) NOT NULL, -- buy, sell `type` VARCHAR(4) NOT NULL, -- buy, sell
`currency` VARCHAR(3) NOT NULL, `currency` VARCHAR(3) NOT NULL,
`value` INT(11) NOT NULL, `value` INT(11) NOT NULL,
`periods` DATETIME NOT NULL, `periods` DATETIME NOT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `item` (`item`), KEY `sku` (`sku`),
CONSTRAINT `item_price_fk_item` CONSTRAINT `item_price_fk_sku`
FOREIGN KEY (`item`) FOREIGN KEY (`sku`)
REFERENCES `item`(`id`) REFERENCES `item`(`sku`)
ON UPDATE CASCADE ON UPDATE CASCADE
ON DELETE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
@ -24,15 +24,15 @@ CREATE TABLE `item_price` (
-- Not including assets inventory, get from buying/production, and shipping/expedition -- Not including assets inventory, get from buying/production, and shipping/expedition
CREATE TABLE `inventory` ( CREATE TABLE `inventory` (
`id` INT(11) NOT NULL AUTO_INCREMENT, `id` INT(11) NOT NULL AUTO_INCREMENT,
`item` INT(11) NOT NULL, `sku` VARCHAR(60) NOT NULL,
`flow` VARCHAR(20) NOT NULL, -- in, out, buy, sell, buy return, sell return `flow` VARCHAR(20) NOT NULL, -- in, out, buy, sell, buy return, sell return, use, produce
`when` DATETIME NOT NULL, `when` DATETIME NOT NULL,
`qty` INT(11) NOT NULL, `qty` INT(11) NOT NULL,
`note` LONGTEXT DEFAULT NULL, `note` LONGTEXT DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `item` (`item`), KEY `sku` (`sku`),
CONSTRAINT `inventory_fk_item` CONSTRAINT `inventory_fk_sku`
FOREIGN KEY (`item`) FOREIGN KEY (`sku`)
REFERENCES `item`(`id`) REFERENCES `item`(`sku`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- get from: buying/production -- get from: buying/production