Comment implémenter la conception de la structure de table du système de gestion d'entrepôt dans MySQL ?
Introduction :
Avec le développement fulgurant du commerce électronique, l'importance des systèmes de gestion d'entrepôt dans les entreprises est devenue de plus en plus importante. Grâce à un système de gestion d'entrepôt raisonnable, les entreprises peuvent mieux contrôler les conditions des stocks, réduire les coûts d'entreposage et améliorer l'efficacité opérationnelle. Cet article expliquera comment concevoir la structure de table d'un système de gestion d'entrepôt simple et pratique dans MySQL et fournira des exemples de code spécifiques.
1. Analyse des exigences
Avant de concevoir le système de gestion d'entrepôt, nous devons d'abord effectuer une analyse des exigences pour clarifier les fonctions et la structure des données du système. Un système de gestion d'entrepôt de base doit inclure les modules fonctionnels de base suivants :
2. Conception de la structure de la table
Sur la base de l'analyse de la demande ci-dessus, nous pouvons concevoir la structure de table suivante :
CREATE TABLE produit
(product
(
id
INT PRIMARY KEY AUTO_INCREMENT, -- 商品ID
name
VARCHAR(100) NOT NULL, -- 商品名称
price
DECIMAL(8, 2) NOT NULL, -- 商品价格
unit
VARCHAR(20) NOT NULL -- 商品单位
);
CREATE TABLE location
(
id
INT PRIMARY KEY AUTO_INCREMENT, -- 仓位ID
name
VARCHAR(50) NOT NULL, -- 仓位名称
capacity
INT DEFAULT 0 -- 仓位容量
);
CREATE TABLE inbound
(
id
INT PRIMARY KEY AUTO_INCREMENT, -- 入库记录ID
product_id
INT NOT NULL, -- 商品ID
location_id
INT NOT NULL, -- 仓位ID
quantity
INT NOT NULL, -- 入库数量
inbound_time
DATETIME DEFAULT CURRENT_TIMESTAMP, -- 入库时间
FOREIGN KEY (product_id
) REFERENCES product
(id
),
FOREIGN KEY (location_id
) REFERENCES location
(id
)
);
CREATE TABLE outbound
(
id
INT PRIMARY KEY AUTO_INCREMENT, -- 出库记录ID
product_id
INT NOT NULL, -- 商品ID
location_id
INT NOT NULL, -- 仓位ID
quantity
INT NOT NULL, -- 出库数量
outbound_time
DATETIME DEFAULT CURRENT_TIMESTAMP, -- 出库时间
FOREIGN KEY (product_id
) REFERENCES product
(id
),
FOREIGN KEY (location_id
) REFERENCES location
(id
)
);
CREATE TABLE stock
(
product_id
INT PRIMARY KEY, -- 商品ID
quantity
INT NOT NULL, -- 当前库存量
available_quantity
INT NOT NULL, -- 可用库存量
FOREIGN KEY (product_id
) REFERENCES product
(id
)
);
CREATE TABLE inventory
(
id
INT PRIMARY KEY AUTO_INCREMENT, -- 盘点记录ID
product_id
INT NOT NULL, -- 商品ID
location_id
INT NOT NULL, -- 仓位ID
quantity
INT NOT NULL, -- 盘点数量
inventory_time
DATETIME DEFAULT CURRENT_TIMESTAMP, -- 盘点时间
FOREIGN KEY (product_id
) REFERENCES product
(id
),
FOREIGN KEY (location_id
) REFERENCES location
(id
)
);
三、代码示例
-- 添加商品
INSERT INTO product
(name
, price
, unit
) VALUES ('商品1', 10.00, '件');
-- 查询所有商品
SELECT * FROM product
;
-- 修改商品信息
UPDATE product
SET price
= 12.50 WHERE id
id
INT PRIMARY KEY AUTO_INCREMENT, -- ID produit
nom
VARCHAR(100) NOT NULL, -- Nom du produit🎜 prix
DECIMAL(8, 2) NON NULL, -- prix du produit🎜 unité
VARCHAR(20) NON NULL -- unité du produit🎜);🎜location
(🎜 id
INT PRIMARY KEY AUTO_INCREMENT, -- ID de position🎜 name
VARCHAR(50) NOT NULL, -- Nom de l'entrepôt🎜 capacité
INT DEFAULT 0 -- Capacité de l'entrepôt🎜);🎜inbound
(🎜 id
INT PRIMARY KEY AUTO_INCREMENT, -- ID d'enregistrement entrant🎜 product_id
INT NOT NULL, -- ID de produit 🎜 location_id
INT NOT NULL, -- ID de position🎜 quantity
INT NOT NULL, -- Quantité entrante🎜 inbound_time
DATETIME DEFAULT CURRENT_TIMESTAMP, - - Stockage time🎜 CLÉ ÉTRANGÈRE (product_id
) RÉFÉRENCES product
(id
),🎜 CLÉ ÉTRANGÈRE (location_id
) RÉFÉRENCES location
(id
)🎜);🎜sortant
(🎜 id
INT PRIMARY KEY AUTO_INCREMENT, -- ID d'enregistrement sortant🎜 product_id
INT NOT NULL, -- ID de produit 🎜 location_id
INT NOT NULL, -- ID de position🎜 quantity
INT NOT NULL, -- Quantité sortante🎜 outbound_time
DATETIME DEFAULT CURRENT_TIMESTAMP, - - Livraison time🎜 CLÉ ÉTRANGÈRE (product_id
) RÉFÉRENCES product
(id
),🎜 CLÉ ÉTRANGÈRE (location_id
) RÉFÉRENCES location
(id
)🎜);🎜stock
(🎜 product_id
INT PRIMARY KEY, -- Product ID🎜 quantity
INT NOT NULL, -- Quantité actuelle de l'inventaire🎜 available_quantity
INT NON NULL, -- Quantité d'inventaire disponible🎜 CLÉ ÉTRANGÈRE (product_id
) RÉFÉRENCES product
(id
)🎜 );🎜inventaire
(🎜 id
INT PRIMARY KEY AUTO_INCREMENT, -- ID d'enregistrement d'inventaire🎜 product_id
INT NOT NULL, -- ID de produit 🎜 location_id
INT NOT NULL, -- ID de position 🎜 quantity
INT NOT NULL, -- quantité d'inventaire 🎜 inventory_time
DATETIME DEFAULT CURRENT_TIMESTAMP, -- inventaire Time🎜 CLÉ ÉTRANGÈRE (product_id
) RÉFÉRENCES product
(id
),🎜 CLÉ ÉTRANGÈRE (location_id
) RÉFÉRENCES location
(id
)🎜);🎜🎜3. Exemple de code🎜🎜🎜Exemple de code du module de gestion de produit : 🎜🎜🎜-- Ajouter un produit🎜INSERT INTO product code> (<code>nom
, prix
, unité
) VALEURS ('article 1', 10,00, 'pièce');🎜🎜-- Tout interroger Produit🎜SELECT * FROM product
;🎜🎜-- Modifier les informations sur le produit🎜UPDATE product
SET price
= 12.50 WHERE id
= 1;🎜--Supprimer les informations sur le produit
DELETE FROM product
WHERE id
= 1;product
WHERE id
= 1;
-- 商品入库
INSERT INTO inbound
(product_id
, location_id
, quantity
) VALUES (1, 1, 10);
-- 查询所有入库记录
SELECT * FROM inbound
;
-- 根据商品ID查询入库记录
SELECT * FROM inbound
WHERE product_id
= 1;
-- 商品出库
INSERT INTO outbound
(product_id
, location_id
, quantity
) VALUES (1, 1, 5);
-- 查询所有出库记录
SELECT * FROM outbound
;
-- 根据商品ID查询出库记录
SELECT * FROM outbound
WHERE product_id
= 1;
-- 查询所有库存信息
SELECT * FROM stock
;
-- 根据商品ID查询库存信息
SELECT * FROM stock
WHERE product_id
= 1;
-- 商品盘点
INSERT INTO inventory
(product_id
, location_id
, quantity
) VALUES (1, 1, 15);
-- 查询所有盘点记录
SELECT * FROM inventory
;
-- 根据商品ID查询盘点记录
SELECT * FROM inventory
WHERE product_id
inbound
(product_id
, location_id
, quantity
) VALEURS (1 , 1, 10);
--Interroger tous les enregistrements entrants
inbound
;🎜🎜--Interroger les enregistrements entrants en fonction de l'ID du produit🎜SELECT * FROM inbound
WHERE product_id
= 1;🎜 sortant
(product_id
, location_id
, quantity
) VALEURS (1, 1, 5);🎜🎜 -- Interroger tous les enregistrements sortants 🎜SELECT * FROM outbound
;🎜🎜-- Interroger les enregistrements sortants en fonction de l'ID du produit🎜SELECT * FROM outbound
WHERE product_id code> = 1;🎜<li>Exemple de code du module de gestion des stocks :</li>
stock
;🎜🎜-- Interroger l'inventaire informations basées sur l'ID du produit🎜SELECT * FROM stock
WHERE product_id
= 1;🎜inventaire
(product_id
, location_id
, quantité
) VALEURS (1, 1, 15);🎜🎜--Interroger tous les enregistrements d'inventaire🎜SELECT * FROM inventaire
;🎜🎜--Interroger les enregistrements d'inventaire en fonction de l'ID du produit🎜SELECT * FROM inventaire code> WHERE <code>product_id
= 1;🎜🎜Conclusion : 🎜Grâce à la conception de la structure de table ci-dessus et aux exemples de code, nous pouvons implémenter un système de gestion d'entrepôt simple et pratique dans MySQL. Grâce à ce système, les entreprises peuvent facilement gérer les marchandises, les positions des entrepôts, les enregistrements entrants et sortants, l'état des stocks et les enregistrements d'inventaire, améliorant ainsi l'efficacité et la précision de la gestion des entrepôts. 🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!