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