Denne vejledning indeholder de komplette trin til at designe et databaseskema for lagerstyringssystemet til at administrere leverandører, sælgere, varer, varelager, indkøbsordrer og kundeordrer.
Noter :Almindeligvis anvender virksomheder inden for detailhandel og fremstilling lagersystemer. Blandt udbredte anvendelsestilfælde i andre industrier kan dette databaseskema f.eks. bruges til lagerstyring på hospitaler for at øge effektiviteten af sundhedsforsyningskæder og reducere medicinspild.
Entity Relationship Diagram eller visuelle databasedesign er vist nedenfor.
Lagerstyringsdatabase
Du kan også besøge de populære tutorials, herunder Sådan installeres MySQL 8 på Ubuntu 20.04 LTS, Sådan installeres MySQL 8 på Windows, Sådan installeres MySQL Workbench på Ubuntu, Sådan installeres MySQL 8 med Workbench på Windows 10, RBAC-database i MySql, Blogdatabase i MySQL, Quiz-database i MySQL, afstemnings- og undersøgelsesdatabase i MySQL, Online-indkøbskurvdatabase i MySQL og lær grundlæggende SQL-forespørgsler i MySQL.
Beholdningsdatabase
Det allerførste trin er at oprette inventardatabasen. Den kan oprettes ved hjælp af forespørgslen som vist nedenfor.
CREATE SCHEMA `inventory` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Jeg har brugt tegnsættet utf8mb4 for at understøtte en bred vifte af tegn.
Brugertabel
I dette afsnit vil vi designe Brugertabellen at gemme brugeroplysninger. Brugere kan administrere deres egne profiler. Brugerne kan også bruge applikationen i henhold til de roller, de er tildelt. Du kan også henvise til selvstudiet RBAC Database i MySql for at implementere et komplet RBAC-system til styring af roller og tilladelser. Nedenfor nævnt er beskrivelsen af alle kolonnerne i brugertabellen.
Id | Det unikke id til at identificere brugeren. |
Rolle-id | Brugerens rolle. Det kan være administrator, leverandør, sælger og kunde. |
Fornavn | Brugerens fornavn. |
Mellemnavn | Brugerens mellemnavn. |
Efternavn | Brugerens efternavn. |
Mobil | Brugerens mobilnummer. Det kan bruges til login og registreringsformål. |
Brugerens e-mail. Det kan bruges til login og registreringsformål. | |
Password Hash | Adgangskodehashen genereret af den passende algoritme. Vi skal undgå at gemme almindelige eller krypterede adgangskoder. |
Registreret på | Denne kolonne kan bruges til at beregne levetiden for brugeren med applikationen. |
Sidste login | Det kan bruges til at identificere brugerens sidste login. |
Introduktion | En kort introduktion af brugeren. |
Profil | Brugeroplysninger. |
Brugertabellen med de relevante begrænsninger er vist nedenfor.
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) );
Produkttabel
I dette afsnit vil vi designe Produkttabellen at gemme produktdata. Nedenfor nævnt er beskrivelsen af alle kolonnerne i produkttabellen.
Id | Det unikke id til at identificere produktet. |
Titel | Produktets titel, der skal vises på inventaret. |
Oversigt | Opsummeringen for at nævne de vigtigste højdepunkter. |
Type | Typen til at skelne mellem de forskellige produkttyper. |
Oprettet på | Det gemmer dato og klokkeslæt, hvor produktet er oprettet. |
Opdateret kl. | Den gemmer dato og klokkeslæt, hvor produktet opdateres. |
Indhold | Kolonnen, der bruges til at gemme de yderligere oplysninger om produktet. |
Produkttabellen med de relevante begrænsninger er vist nedenfor.
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`)
);
Produktmeta
Produktmetatabellen kan bruges til at gemme yderligere information om produkter, inklusive produktbanner-URL osv. Nedenfor nævnt er beskrivelsen af alle kolonnerne i produktmetatabellen.
Id | Det unikke id til at identificere produktets meta. |
Produkt-id | Produkt-id'et til at identificere det overordnede produkt. |
Nøgle | Nøglen, der identificerer metaen. |
Indhold | Kolonnen, der bruges til at gemme produktets metadata. |
Produktmetatabellen med de relevante begrænsninger er som vist nedenfor.
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;
Kategori- og produktkategoritabel
I dette afsnit vil vi designe Kategoritabellen og Produktkategoritabel at gemme produktkategorierne og deres kortlægninger. Nedenfor nævnt er beskrivelsen af alle kolonnerne i kategoritabellen.
Id | Det unikke id til at identificere kategorien. |
Forældre-id | Det overordnede id til at identificere den overordnede kategori. |
Titel | Kategorititlen. |
Metatitel | Metatitlen, der skal bruges til browsertitel og SEO. |
Snegl | Kategoriesneglen til at danne URL'en. |
Indhold | Kolonnen, der bruges til at gemme kategoridetaljerne. |
Kategoritabellen med de relevante begrænsninger er som vist nedenfor.
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;
Nedenfor nævnt er beskrivelsen af alle kolonnerne i produktkategoritabellen.
Produkt-id | Produkt-id'et til at identificere produktet. |
Kategori-id | Kategori-id'et til at identificere kategorien. |
Produktkategoritabellen med de relevante begrænsninger er som vist nedenfor.
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);
Mærketabel
I dette afsnit vil vi designe mærketabellen at gemme mærkedata. Nedenfor nævnt er beskrivelsen af alle kolonnerne i mærketabellen.
Id | Det unikke id til at identificere mærket. |
Titel | Mærketitlen, der skal vises på inventaret. |
Oversigt | Opsummeringen nævner de vigtigste højdepunkter. |
Oprettet på | Det gemmer dato og klokkeslæt, hvor produktet er oprettet. |
Opdateret kl. | Den gemmer dato og klokkeslæt, hvor produktet opdateres. |
Indhold | Kolonnen, der bruges til at gemme de yderligere oplysninger om mærket. |
Brandtabellen med de relevante begrænsninger er vist nedenfor.
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`)
);
Bestil tabeltabel
Dette afsnit indeholder tabellen til at administrere lagerordrerne. Ordren kan tilknyttes enten Leverandør eller Kunden. Nedenfor nævnt er beskrivelsen af alle kolonnerne i rækkefølgetabellen.
Id | Det unikke id til at identificere ordren. |
Bruger-id | Bruger-id'et til at identificere den leverandør eller kunde, der er knyttet til ordren. |
Type | Ordretypen, der skal skelnes mellem indkøbsordre eller kundeordre. |
Status | Ordens status kan være Ny, Checkout, Betalt, Mislykket, Sendt, Leveret, Returneret og Fuldført. |
Subtotal | Den samlede pris for ordrevarerne. |
Varerabat | Den samlede rabat på ordrevarerne. |
Moms | Afgiften på ordrevarerne. |
Forsendelse | Forsendelsesomkostningerne for ordrevarerne. |
I alt | Den samlede pris for Ordren inklusive moms og forsendelse. Det udelukker varerabatten. |
Promovering | Kampagnekoden for Ordren. |
Rabat | Den samlede rabat på ordren baseret på kampagnekoden eller butiksrabatten. |
Stor i alt | Den samlede ordre, der skal betales af køberen. |
Oprettet på | Den gemmer datoen og klokkeslættet, hvor ordren er oprettet. |
Opdateret kl. | Den gemmer dato og klokkeslæt, hvor ordren opdateres. |
Indhold | Kolonnen, der bruges til at gemme de yderligere oplysninger om ordren. |
Bestillingstabellen med de relevante begrænsninger er som vist nedenfor.
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);
Adressetabel
Dette afsnit indeholder tabellen til at administrere adressen på enten brugeren eller ordren. Brugeradressen kan bruges til at gemme den adresse, der er knyttet til brugeren. Ordreadressen kan bruges til at gemme leveringsadressen for hjemmeleveringsordrerne. Nedenfor nævnt er beskrivelsen af alle kolonnerne i adressetabellen.
Id | Det unikke id til at identificere adressen. |
Bruger-id | Bruger-id'et til at identificere den bruger, der er knyttet til adressen. |
Ordre-id | Ordre-id'et til at identificere den ordre, der er knyttet til adressen. |
Fornavn | Brugerens fornavn. |
Mellemnavn | Brugerens mellemnavn. |
Efternavn | Brugerens efternavn. |
Mobil | Brugerens mobilnummer. |
Brugerens e-mail. | |
Linje 1 | Den første linje til at gemme adresse. |
Linje 2 | Den anden linje til at gemme adresse. |
By | Byen for adressen. |
Provins | Provins for adressen. |
Land | Adressens land. |
Oprettet på | Den gemmer datoen og klokkeslættet, hvor ordren er oprettet. |
Opdateret kl. | Den gemmer dato og klokkeslæt, hvor ordren opdateres. |
Adressetabellen med de relevante begrænsninger er som vist nedenfor.
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;
Varetabel
I dette afsnit vil vi designe elementet Tabel for at gemme vareoplysningerne. Varen repræsenterer de varer, der er på lager i lageret og købt hos leverandørerne. Nedenfor nævnt er beskrivelsen af alle kolonnerne i varetabellen.
Id | Det unikke id til at identificere varen. |
Produkt-id | Produkt-id'et til at identificere det produkt, der er knyttet til lagervaren. |
Mærke-id | Mærke-id'et til at identificere det mærke, der er knyttet til lagervaren. |
Leverandør-id | Leverandør-id'et til at identificere den leverandør, der er knyttet til lagervaren. |
Ordre-id | Ordre-id'et til at identificere den ordre, der er knyttet til lagervaren. |
Oprettet af | Bruger-id'et til at identificere den bruger, der tilføjede lagerelementet. |
Opdateret af | Bruger-id'et til at identificere den bruger, der opdaterede inventarelementet. |
Lagerholdsenhed | Id'et til at identificere varen på lager. |
Maksimal udsalgspris | Den trykte pris på det produkt, der er knyttet til varen. |
Rabat | Rabatten gives af leverandøren. |
Pris | Den pris, produktet blev købt til. |
Mængde | Den samlede mængde modtaget på lageret. |
Solgt | Den samlede mængde solgt til kunderne. |
Tilgængelig | Den mængde, der er tilgængelig på lageret. |
Defekt | Det samlede antal defekte varer enten modtaget på lageret eller returneret af kunderne. |
Oprettet på | Den gemmer datoen og klokkeslættet, hvor ordren er oprettet. |
Opdateret kl. | Den gemmer dato og klokkeslæt, hvor ordren opdateres. |
Varetabellen med de relevante begrænsninger er som vist nedenfor.
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;
Tabel over bestillingsvare
Denne sektion indeholder tabellen til håndtering af ordrevarer købt af kunderne. Nedenfor nævnt er beskrivelsen af alle kolonnerne i Ordrevaretabellen.
Id | Det unikke id til at identificere den bestilte vare. |
Produkt-id | Produkt-id'et til at identificere det produkt, der er knyttet til den bestilte vare. |
Vare-id | Vare-id'et til at identificere den vare, der er knyttet til den bestilte vare. |
Ordre-id | Ordre-id'et til at identificere den ordre, der er knyttet til den bestilte vare. |
SKU | Produktets SKU under køb af det. |
Pris | Prisen på produktet, mens du køber det. |
Rabat | Rabatten på produktet, mens du køber det. |
Mængde | Mængden af produktet valgt af brugeren. |
Oprettet på | Den gemmer datoen og tidspunktet, hvor den bestilte vare er oprettet. |
Opdateret kl. | Den gemmer datoen og tidspunktet, hvor den bestilte vare opdateres. |
Indhold | Kolonnen, der bruges til at gemme de yderligere detaljer for den bestilte vare. |
Ordrevaretabellen med de relevante begrænsninger er som vist nedenfor.
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;
Transaktionstabel
Vi har også brug for en transaktionstabel til at spore ordrebetalinger foretaget af køber og til bogføring. Vi kan også bruge den samme tabel til at registrere den delvise eller fulde tilbagebetaling af ordren. Nedenfor nævnt er beskrivelsen af alle kolonnerne i transaktionstabellen.
Id | Det unikke id til at identificere transaktionen. |
Bruger-id | Bruger-id'et til at identificere den bruger, der er knyttet til transaktionen. |
Ordre-id | Ordre-id'et til at identificere den ordre, der er knyttet til transaktionen. |
Kode | Betalings-id'et leveret af betalingsgatewayen. |
Type | Ordretransaktionstypen kan være enten Kredit eller Debet. |
Tilstand | Ordretransaktionstilstanden kan være offline, efterkrav, check, træk, kablet og online. |
Status | Ordretransaktionens status kan være Ny, Annulleret, Mislykket, Afventer, Afvist, Afvist og Succes. |
Oprettet på | Den gemmer datoen og tidspunktet, hvor ordretransaktionen oprettes. |
Opdateret kl. | Den gemmer datoen og tidspunktet, hvor ordretransaktionen opdateres. |
Indhold | Kolonnen, der bruges til at gemme de yderligere detaljer om transaktionen. |
Transaktionstabellen med de relevante begrænsninger er som vist nedenfor.
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;
Oversigt
I denne vejledning har vi diskuteret databasedesignet af et lagerstyringssystem til at gemme brugerne og administrere produktlager. Det gav også databasedesignet til at administrere indkøbsordrer og kundeordrer.
Du kan indsende dine kommentarer for at deltage i diskussionen. Du kan også være interesseret i at designe databasen med Blog- og Poll &Survey-applikationerne. Det komplette databaseskema er også tilgængeligt på GitHub.