Този урок предоставя пълните стъпки за проектиране на схема на база данни на системата за управление на запасите за управление на доставчици, продавачи, артикули, артикули, поръчки за покупка и поръчки на клиенти.
Бележки :Обикновено фирмите в търговията на дребно и производството използват системи за инвентаризация. Сред широко разпространените случаи на използване в други индустрии, тази схема на база данни може да се използва, например, за управление на инвентара в болниците, за да се повиши ефективността на веригите за доставки на здравеопазване и да се намали разхищаването на лекарства.
Диаграмата на взаимоотношенията на обектите или визуалният дизайн на базата данни е показан по-долу.
База данни за управление на инвентара
Можете също да посетите популярните уроци, включително Как да инсталирате MySQL 8 на Ubuntu 20.04 LTS, Как да инсталирате MySQL 8 на Windows, Как да инсталирате MySQL Workbench на Ubuntu, Как да инсталирате MySQL 8 с Workbench на Windows 10, RBAC база данни в MySql, База данни за блогове в MySql, База данни за тестове в MySQL, База данни за анкети и анкети в MySQL, База данни за онлайн пазарска кошница в MySQL и Научете основни SQL заявки в MySQL.
База данни за инвентара
Първата стъпка е да създадете база данни за инвентаризация. Може да се създаде с помощта на заявката, както е показано по-долу.
CREATE SCHEMA `inventory` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Използвал съм набора от знаци utf8mb4 за поддръжка на широк спектър от знаци.
Таблица с потребители
В този раздел ще проектираме Таблица на потребителите за съхраняване на потребителска информация. Потребителите могат да управляват собствените си профили. Също така, потребителите могат да използват приложението според назначените им роли. Можете също да се обърнете към урока RBAC Database в MySql, за да приложите пълна RBAC система за управление на роли и разрешения. По-долу е посочено описанието на всички колони на потребителската таблица.
Id | Уникалният идентификатор за идентифициране на потребителя. |
Идентификатор на ролята | Ролята на потребителя. Може да бъде администратор, доставчик, продавач и клиент. |
Име | Първото име на потребителя. |
Биринно име | Биринното име на потребителя. |
Фамилия | Фамилията на потребителя. |
Мобилни | Мобилният номер на потребителя. Може да се използва за влизане и регистрация. |
Имейл | Имейлът на потребителя. Може да се използва за влизане и регистрация. |
Хеш на парола | Хешът на паролата, генериран от подходящия алгоритъм. Трябва да избягваме съхраняването на обикновени или криптирани пароли. |
Регистриран в | Тази колона може да се използва за изчисляване на живота на потребителя с приложението. |
Последно влизане | Може да се използва за идентифициране на последното влизане на потребителя. |
Въведение | Кратко представяне на потребителя. |
Профил | Подробности за потребителя. |
Потребителската таблица със съответните ограничения е показана по-долу.
CREATE TABLE `inventory`.`user` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`roleId` SMALLINT NOT NULL,
`firstName` VARCHAR(50) NULL DEFAULT NULL,
`middleName` VARCHAR(50) NULL DEFAULT NULL,
`lastName` VARCHAR(50) NULL DEFAULT NULL,
`username` VARCHAR(50) NULL DEFAULT NULL,
`mobile` VARCHAR(15) NULL,
`email` VARCHAR(50) NULL,
`passwordHash` VARCHAR(32) NOT NULL,
`registeredAt` DATETIME NOT NULL,
`lastLogin` DATETIME NULL DEFAULT NULL,
`intro` TINYTEXT NULL DEFAULT NULL,
`profile` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `uq_username` (`username` ASC),
UNIQUE INDEX `uq_mobile` (`mobile` ASC),
UNIQUE INDEX `uq_email` (`email` ASC) );
Таблица с продукти
В този раздел ще проектираме Таблица с продукти за съхраняване на данните за продукта. По-долу е посочено описанието на всички колони на таблицата с продукти.
Id | Уникалният идентификатор за идентифициране на продукта. |
Заглавие | Заглавието на продукта, което да се показва в инвентара. |
Резюме | Резюме за споменаване на ключови акценти. |
Тип | Типът за разграничаване на различните типове продукти. |
Създаден в | Той съхранява датата и часа, в които е създаден продуктът. |
Актуализирано в | Той съхранява датата и часа, в които продуктът е актуализиран. |
Съдържание | Колоната, използвана за съхраняване на допълнителни подробности за продукта. |
Таблицата с продуктите със съответните ограничения е показана по-долу.
CREATE TABLE `inventory`.`product` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(75) NOT NULL,
`summary` TINYTEXT NULL,
`type` SMALLINT(6) NOT NULL DEFAULT 0,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`)
);
Мета на продукта
Продуктовата мета таблица може да се използва за съхраняване на допълнителна информация за продукти, включително URL адреса на продуктовия банер и т.н. По-долу е посочено описанието на всички колони на метатаблицата на продукта.
Id | Уникалният идентификатор за идентифициране на мета продукта. |
Идентификатор на продукта | Идентификаторът на продукта за идентифициране на основния продукт. |
Ключ | Ключът, идентифициращ мета. |
Съдържание | Колоната, използвана за съхраняване на метаданните на продукта. |
Мета таблицата на продукта със съответните ограничения е, както е показано по-долу.
CREATE TABLE `inventory`.`product_meta` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`productId` BIGINT NOT NULL,
`key` VARCHAR(50) NOT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_meta_product` (`productId` ASC),
UNIQUE INDEX `uq_product_meta` (`productId` ASC, `key` ASC),
CONSTRAINT `fk_meta_product`
FOREIGN KEY (`productId`)
REFERENCES `inventory`.`product` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Таблица с категории и таблица с категории продукти
В този раздел ще проектираме Таблица с категории и Таблица с категории продукти за съхраняване на продуктовите категории и техните съпоставяния. По-долу е споменато описанието на всички колони на таблицата с категории.
Id | Уникалният идентификатор за идентифициране на категорията. |
Идентификатор на родител | Идентификаторът на родител за идентифициране на родителската категория. |
Заглавие | Заглавието на категорията. |
Метазаглавие | Мета заглавието, което ще се използва за заглавие на браузъра и SEO. |
Плюс | Категорията, която формира URL адреса. |
Съдържание | Колоната, използвана за съхраняване на подробностите за категорията. |
Таблицата на категориите със съответните ограничения е както е показано по-долу.
CREATE TABLE `inventory`.`category` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`parentId` BIGINT NULL DEFAULT NULL,
`title` VARCHAR(75) NOT NULL,
`metaTitle` VARCHAR(100) NULL DEFAULT NULL,
`slug` VARCHAR(100) NOT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`));
ALTER TABLE `inventory`.`category`
ADD INDEX `idx_category_parent` (`parentId` ASC);
ALTER TABLE `inventory`.`category`
ADD CONSTRAINT `fk_category_parent`
FOREIGN KEY (`parentId`)
REFERENCES `inventory`.`category` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
По-долу е споменато описанието на всички колони в таблицата с категории продукти.
Идентификатор на продукта | Идентификаторът на продукта за идентифициране на продукта. |
Идентификатор на категория | Идентификаторът на категорията за идентифициране на категорията. |
Таблицата с категории продукти със съответните ограничения е, както е показано по-долу.
CREATE TABLE `inventory`.`product_category` (
`productId` BIGINT NOT NULL,
`categoryId` BIGINT NOT NULL,
PRIMARY KEY (`productId`, `categoryId`),
INDEX `idx_pc_category` (`categoryId` ASC),
INDEX `idx_pc_product` (`productId` ASC),
CONSTRAINT `fk_pc_product`
FOREIGN KEY (`productId`)
REFERENCES `inventory`.`product` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_pc_category`
FOREIGN KEY (`categoryId`)
REFERENCES `inventory`.`category` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
Таблица с марки
В този раздел ще проектираме Таблица за марки за съхраняване на данните за марката. По-долу е споменато описанието на всички колони на таблицата с марките.
Id | Уникалният идентификатор за идентифициране на марката. |
Заглавие | Заглавието на марката, което да се показва в инвентара. |
Резюме | В резюмето се споменават основните акценти. |
Създаден в | Той съхранява датата и часа, в които е създаден продуктът. |
Актуализирано в | Той съхранява датата и часа, в които продуктът е актуализиран. |
Съдържание | Колоната, използвана за съхраняване на допълнителните подробности за марката. |
Таблицата с марките със съответните ограничения е показана по-долу.
CREATE TABLE `inventory`.`brand` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(75) NOT NULL,
`summary` TINYTEXT NULL,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`)
);
Таблица за поръчки
Този раздел предоставя таблицата за управление на поръчките за инвентаризация. Поръчката може да бъде свързана или с Доставчика, или с Клиента. По-долу е посочено описанието на всички колони на таблицата с поръчки.
Id | Уникалният идентификатор за идентифициране на поръчката. |
Потребителски идентификатор | Потребителският идентификатор за идентифициране на доставчика или клиента, свързан с поръчката. |
Тип | Типът на поръчка за разграничаване между поръчка за покупка или клиентска поръчка. |
Състояние | Състоянието на поръчката може да бъде Нова, Плащане, Платено, Неуспешно, Изпратено, Доставено, Върнато и Завършено. |
Под общо | Общата цена на артикулите на поръчката. |
Отстъпка за артикули | Общата отстъпка на артикулите на поръчката. |
Данък | Данъкът върху артикулите на поръчката. |
Доставка | Таксите за доставка на артикулите на поръчката. |
Общо | Общата цена на поръчката, включително данък и доставка. Това изключва отстъпката за артикули. |
Промоция | Промоционалният код на поръчката. |
Отстъпка | Общата отстъпка на поръчката въз основа на промоционалния код или отстъпката в магазина. |
Обща сума | Общата сума на поръчката, която трябва да бъде платена от купувача. |
Създаден в | Той съхранява датата и часа, в които поръчката е създадена. |
Актуализирано в | Той съхранява датата и часа, в които поръчката е актуализирана. |
Съдържание | Колоната, използвана за съхраняване на допълнителните подробности за поръчката. |
Таблицата на поръчките със съответните ограничения е както е показано по-долу.
CREATE TABLE `inventory`.`order` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`userId` BIGINT NOT NULL,
`type` SMALLINT(6) NOT NULL DEFAULT 0,
`status` SMALLINT(6) NOT NULL DEFAULT 0,
`subTotal` FLOAT NOT NULL DEFAULT 0,
`itemDiscount` FLOAT NOT NULL DEFAULT 0,
`tax` FLOAT NOT NULL DEFAULT 0,
`shipping` FLOAT NOT NULL DEFAULT 0,
`total` FLOAT NOT NULL DEFAULT 0,
`promo` VARCHAR(50) NULL DEFAULT NULL,
`discount` FLOAT NOT NULL DEFAULT 0,
`grandTotal` FLOAT NOT NULL DEFAULT 0,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_order_user` (`userId` ASC),
CONSTRAINT `fk_order_user`
FOREIGN KEY (`userId`)
REFERENCES `inventory`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
Таблица с адреси
Този раздел предоставя таблицата за управление на адреса на потребителя или на поръчката. Потребителският адрес може да се използва за съхраняване на адреса, свързан с потребителя. Адресът за поръчка може да се използва за съхраняване на адреса за доставка на поръчките за доставка до дома. По-долу е споменато описанието на всички колони на адресната таблица.
Id | Уникалният идентификатор за идентифициране на адреса. |
Потребителски идентификатор | Потребителският идентификатор за идентифициране на потребителя, свързан с адреса. |
Идентификатор на поръчката | Идентификаторът на поръчката за идентифициране на поръчката, свързана с адреса. |
Име | Първото име на потребителя. |
Биринно име | Биринното име на потребителя. |
Фамилия | Фамилията на потребителя. |
Мобилни | Мобилният номер на потребителя. |
Имейл | Имейлът на потребителя. |
Ред 1 | Първият ред за съхраняване на адреса. |
Ред 2 | Вторият ред за съхраняване на адрес. |
Град | Градът на адреса. |
Провинция | Провинцията на адреса. |
Държава | Държавата на адреса. |
Създаден в | Той съхранява датата и часа, в които поръчката е създадена. |
Актуализирано в | Той съхранява датата и часа, в които поръчката е актуализирана. |
Таблицата с адреси със съответните ограничения е както е показано по-долу.
CREATE TABLE `inventory`.`address` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`userId` BIGINT NULL DEFAULT NULL,
`orderId` BIGINT NULL DEFAULT NULL,
`firstName` VARCHAR(50) NULL DEFAULT NULL,
`middleName` VARCHAR(50) NULL DEFAULT NULL,
`lastName` VARCHAR(50) NULL DEFAULT NULL,
`mobile` VARCHAR(15) NULL,
`email` VARCHAR(50) NULL,
`line1` VARCHAR(50) NULL DEFAULT NULL,
`line2` VARCHAR(50) NULL DEFAULT NULL,
`city` VARCHAR(50) NULL DEFAULT NULL,
`province` VARCHAR(50) NULL DEFAULT NULL,
`country` VARCHAR(50) NULL DEFAULT NULL,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_address_user` (`userId` ASC),
CONSTRAINT `fk_address_user`
FOREIGN KEY (`userId`)
REFERENCES `inventory`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
ALTER TABLE `inventory`.`address`
ADD INDEX `idx_address_order` (`orderId` ASC);
ALTER TABLE `inventory`.`address`
ADD CONSTRAINT `fk_address_order`
FOREIGN KEY (`orderId`)
REFERENCES `inventory`.`order` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
Таблица с артикули
В този раздел ще проектираме Артикула Таблица за съхраняване на детайлите на артикула. Артикулът представлява артикулите, съхранявани в инвентара и закупени от доставчиците. По-долу е споменато описанието на всички колони на таблицата с артикули.
Id | Уникалният идентификатор за идентифициране на артикула. |
Идентификатор на продукта | Идентификаторът на продукта за идентифициране на продукта, свързан с артикула в инвентара. |
Идентификатор на марката | Идент. № на марката за идентифициране на марката, свързана с артикула в инвентара. |
Идент. № на доставчика | Идентификационният номер на доставчика за идентифициране на доставчика, свързан с артикула от инвентара. |
Идентификатор на поръчката | Идентификаторът на поръчката за идентифициране на поръчката, свързана с елемента от инвентара. |
Създадено от | Идентификаторът на потребителя за идентифициране на потребителя, добавил артикула от инвентара. |
Актуализирано от | Потребителският идентификатор за идентифициране на потребителя, който е актуализирал артикула в инвентара. |
Единица за съхранение на запаси | Идентификаторът за идентифициране на артикула на склад. |
Максимална цена на дребно | Печатната цена на продукта, свързан с артикула. |
Отстъпка | Отстъпката се дава от доставчика. |
Цена | Цената, на която е закупен продуктът. |
Количество | Общото количество, получено при инвентаризацията. |
Продаден | Общото количество, продадено на клиентите. |
Наличен | Количеството, което е налично на склад. |
Дефектен | Общият брой дефектни артикули или получени при инвентара, или върнати от клиентите. |
Създаден в | Той съхранява датата и часа, в които поръчката е създадена. |
Актуализирано в | Той съхранява датата и часа, в които поръчката е актуализирана. |
Таблицата на елементите със съответните ограничения е както е показано по-долу.
CREATE TABLE `inventory`.`item` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`productId` BIGINT NOT NULL,
`brandId` BIGINT NOT NULL,
`supplierId` BIGINT NOT NULL,
`orderId` BIGINT NOT NULL,
`sku` VARCHAR(100) NOT NULL,
`mrp` FLOAT NOT NULL DEFAULT 0,
`discount` FLOAT NOT NULL DEFAULT 0,
`price` FLOAT NOT NULL DEFAULT 0,
`quantity` SMALLINT(6) NOT NULL DEFAULT 0,
`sold` SMALLINT(6) NOT NULL DEFAULT 0,
`available` SMALLINT(6) NOT NULL DEFAULT 0,
`defective` SMALLINT(6) NOT NULL DEFAULT 0,
`createdBy` BIGINT NOT NULL,
`updatedBy` BIGINT DEFAULT NULL,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_item_product` (`productId` ASC),
CONSTRAINT `fk_item_product`
FOREIGN KEY (`productId`)
REFERENCES `inventory`.`product` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
ALTER TABLE `inventory`.`item`
ADD INDEX `idx_item_brand` (`brandId` ASC);
ALTER TABLE `inventory`.`item`
ADD CONSTRAINT `fk_item_brand`
FOREIGN KEY (`brandId`)
REFERENCES `inventory`.`brand` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE `inventory`.`item`
ADD INDEX `idx_item_user` (`supplierId` ASC);
ALTER TABLE `inventory`.`item`
ADD CONSTRAINT `fk_item_user`
FOREIGN KEY (`supplierId`)
REFERENCES `inventory`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE `inventory`.`item`
ADD INDEX `idx_item_order` (`orderId` ASC);
ALTER TABLE `inventory`.`item`
ADD CONSTRAINT `fk_item_order`
FOREIGN KEY (`orderId`)
REFERENCES `inventory`.`order` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
Таблица с артикули за поръчка
Този раздел предоставя таблицата за управление на артикулите за поръчка, закупени от клиентите. По-долу е посочено описанието на всички колони на таблицата с артикули за поръчка.
Id | Уникалният идентификатор за идентифициране на поръчания артикул. |
Идентификатор на продукта | Идентификаторът на продукта за идентифициране на продукта, свързан с поръчания артикул. |
Идентификатор на елемент | Идентификаторът на артикула за идентифициране на артикула, свързан с поръчания артикул. |
Идентификатор на поръчката | Идентификаторът на поръчката за идентифициране на поръчката, свързана с поръчания артикул. |
SKU | СКУД на продукта, докато го купувате. |
Цена | Цената на продукта при закупуването му. |
Отстъпка | Отстъпката на продукта при закупуването му. |
Количество | Количеството на продукта, избрано от потребителя. |
Създаден в | Той съхранява датата и часа, в които е създаден поръчания артикул. |
Актуализирано в | Той съхранява датата и часа, в които поръчаният артикул се актуализира. |
Съдържание | Колоната, използвана за съхраняване на допълнителните подробности за поръчания артикул. |
Таблицата с артикули за поръчка със съответните ограничения е както е показано по-долу.
CREATE TABLE `inventory`.`order_item` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`productId` BIGINT NOT NULL,
`itemId` BIGINT NOT NULL,
`orderId` BIGINT NOT NULL,
`sku` VARCHAR(100) NOT NULL,
`price` FLOAT NOT NULL DEFAULT 0,
`discount` FLOAT NOT NULL DEFAULT 0,
`quantity` SMALLINT(6) NOT NULL DEFAULT 0,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_order_item_product` (`productId` ASC),
CONSTRAINT `fk_order_item_product`
FOREIGN KEY (`productId`)
REFERENCES `inventory`.`product` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
ALTER TABLE `inventory`.`order_item`
ADD INDEX `idx_order_item_item` (`itemId` ASC);
ALTER TABLE `inventory`.`order_item`
ADD CONSTRAINT `fk_order_item_item`
FOREIGN KEY (`itemId`)
REFERENCES `inventory`.`item` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE `inventory`.`order_item`
ADD INDEX `idx_order_item_order` (`orderId` ASC);
ALTER TABLE `inventory`.`order_item`
ADD CONSTRAINT `fk_order_item_order`
FOREIGN KEY (`orderId`)
REFERENCES `inventory`.`order` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
Таблица на транзакциите
Необходима ни е и таблица за транзакции, за да проследяваме плащанията по поръчка, направени от купувача и за счетоводство. Можем също да използваме същата таблица, за да запишем частичното или пълното възстановяване на поръчката. По-долу е споменато описанието на всички колони на таблицата с транзакции.
Id | Уникалният идентификатор за идентифициране на транзакцията. |
Потребителски идентификатор | Потребителският идентификатор за идентифициране на потребителя, свързан с транзакцията. |
Идентификатор на поръчката | Идентификаторът на поръчката за идентифициране на поръчката, свързана с транзакцията. |
Код | Идентификационният номер на плащането, предоставен от шлюза за плащане. |
Тип | Типът транзакция на поръчката може да бъде кредитна или дебитна. |
Режим | Режимът на транзакцията на поръчката може да бъде офлайн, наложен платеж, чек, чернова, кабелна и онлайн. |
Състояние | Състоянието на транзакцията на поръчката може да бъде Нова, Отменена, Неуспешна, Изчакваща, Отхвърлена, Отхвърлена и Успешна. |
Създаден в | Той съхранява датата и часа, в които е създадена транзакцията за поръчка. |
Актуализирано в | Той съхранява датата и часа, в които транзакцията на поръчката е актуализирана. |
Съдържание | Колоната, използвана за съхраняване на допълнителните подробности за транзакцията. |
Таблицата на транзакциите със съответните ограничения е както е показано по-долу.
CREATE TABLE `inventory`.`transaction` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`userId` BIGINT NOT NULL,
`orderId` BIGINT NOT NULL,
`code` VARCHAR(100) NOT NULL,
`type` SMALLINT(6) NOT NULL DEFAULT 0,
`mode` SMALLINT(6) NOT NULL DEFAULT 0,
`status` SMALLINT(6) NOT NULL DEFAULT 0,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_transaction_user` (`userId` ASC),
CONSTRAINT `fk_transaction_user`
FOREIGN KEY (`userId`)
REFERENCES `inventory`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
ALTER TABLE `inventory`.`transaction`
ADD INDEX `idx_transaction_order` (`orderId` ASC);
ALTER TABLE `inventory`.`transaction`
ADD CONSTRAINT `fk_transaction_order`
FOREIGN KEY (`orderId`)
REFERENCES `inventory`.`order` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
Резюме
В този урок обсъдихме дизайна на база данни на система за управление на инвентара за съхраняване на потребителите и управление на инвентара на продукти. Той също така предостави дизайна на базата данни за управление на поръчките за покупка и поръчките на клиенти.
Можете да изпратите вашите коментари, за да се присъедините към дискусията. Може да се интересувате и от проектирането на базата данни на приложенията за блогове и анкети и анкети. Пълната схема на базата данни е достъпна и на GitHub.