Mối quan hệ Mô tả
Nhân viên - Ca làm việc Một nhân viên sẽ có một hoặc nhiều ca làm việc Một ca làm việc sẽ có nhiều nhân viên
Nhân viên - Lương nhân viên Một nhân viên sẽ có một mức lương
Mỗi mức lương sẽ có thể có một hoặc nhiều nhân viên nhận được
Hóa đơn bán hàng - Khách
hàng Một khách hàng có thể có một hoặc nhiều hóa đơn
Một hóa đơn chỉ thuộc một và chỉ một khách hàng
Loại khách hàng - Khách
hàng Một loại khách hàng có nhiều khách hàng
Một khách hàng chỉ thuộc một loại khách hàng tại một thời điểm
Hóa đơn bán hàng - Nhân
viên Một nhân viên sẽ phụ trách nhiều hóa đơn
Một hóa đơn do một nhân viên phụ trách
Hóa đơn bán hàng - Chi tiết
25
Chi tiết hóa đơn - Sản phẩm Một chi tiết hóa đơn có một hoặc nhiều sản phẩm Một sản phẩm thuộc một hoặc nhiều chi tiết hóa đơn
Khuyến mãi - Chi tiết
khuyến mãi theo sản phẩm Một mã khuyến mãi sẽ là một hình thức khuyến mãi theo sản phẩm hoặc theo hóa đơn Mỗi loại khuyến mãi theo sản phẩm có thể có không hay nhiều mã khuyến mãi
Khuyến mãi - Chi tiết
khuyến mãi theo hóa đơn Một mã khuyến mãi sẽ là một hình thức khuyến mãi theo hóa đơn Mỗi loại khuyến mãi theo hóa đơn có thể có không hay nhiều mã khuyến mãi
Khuyến mãi - Hóa đơn Mỗi hóa đơn có thể áp dụng một mã khuyến mãi
Một mã khuyến mãi được áp dụng cho một hoặc nhiều hóa đơn
Sản phẩm - Hóa đơn Mỗi hóa đơn có một hoặc nhiều sản phẩm
Mỗi sản phẩm có thể thuộc một hoặc nhiều hóa đơn
Sản phẩm - Giá sản phẩm Một sản phẩm cómột và chỉ một mức giá tại một thời điểm Có thể có một hoặc nhiều sản phẩm cùng một mức giá
Dòng nhập - Nhà cung cấp Quán có thể nhập nguyên liệu từ nhiều nhà cung cấp khác nhau Một nhà cung cấp thực hiện cung cấp nguyên liệu cho quán cà phê
Danh mục nguyên vật liệu -
Dòng nhập nguyên vật liệu Mỗi Danh mục nguyên vật liệu dùng để nhập nhiều nguyên vật liệu Mỗi lần nhập nguyên vật liệu đều dựa trên một Danh mục nguyên vật liệu
Danh mục nguyên vật liệu -
Dòng xuất nguyên vật liệu Mỗi Danh mục nguyên vậtMỗi lần xuất kho nguyên vật liệu đều được báo cáo bằng một liệu có thể xuất nhiều nguyên vật liệu Danh mục nguyên vật liệu
Sản phẩm - Dòng xuất
nguyên vật liệu Một sản phẩm được sản xuất từ một lần xuất khoMỗi lần xuất kho có thể tạo ra nhiều loại sản phẩm Nhân viên - Dòng xuất
nguyên vật liệu Mỗi lần xuất kho sẽ có một nhân viên phụ trách chínhMỗi nhân viên có thể phụ trách một hoặc nhiều lần xuất kho Nhân viên - Dòng nhập
26
Nhân viên - Tồn kho Mỗi lần kiểm tra tồn kho, chỉ có một nhân viên kiểm tra Mỗi nhân viên có thể kiểm tra một hoặc nhiều lần tồn kho IV. Mô hình thực thể quan hệ
1. Mô hình thực thể quan hệ
Link hình ảnhchi tiết:Mô hình thực thể quan hệ
27 2. Mô hình ERD mức vật lý
Link hình ảnhchi tiết: Mô hình ERD mức vật lý
28 USE Csdl_rdm
GO
CREATE TABLE Employee_salary (
Id_nb_shif Int primary key , Total_nb_shift Smallint , Coefficients_salary Float , Into_money Decimal (9,3) )
GO
CREATE TABLE Employee (
Id_employee Int primary key , Id_nb_shif Int
, foreign key (Id_nb_shif) references Employee_salary , Name_employee Nvarchar (60) , Sex Bit , Identity_nb Numeric (12) , Phone_employee Numeric (12) , Address_employee Nvarchar (128) , Email_employee Nvarchar (60) , Position Nvarchar (128) , Date_to_working Date ) GO
CREATE TABLE Employee_shift (
Id_shift Int primary key , Name_shift Nvarchar (60) , Starttime Time , Endtime Time , Money_nb Decimal (9,3) ) GO
CREATE TABLE Shift_assignment (
Id_employee Int , Id_shift Int
29
, foreign key (Id_employee) references Employee , foreign key (Id_shift) references Employee_shift , Name_employee Nvarchar (60)
, Name_shift Nvarchar (60) )
GO
CREATE TABLE Customer_type (
Id_customertype Int primary key , Accumulated_points Tinyint , Customer_tp Nvarchar (60) )
GO
CREATE TABLE Customer (
Id_customer Int primary key , Id_customertype Int
, foreign key (Id_customertype) references Customer_type , Name_customer Nvarchar (60) , Identity_nb Numeric (12) , Phone_customer Numeric (12) , Address_customer Nvarchar (128) , Email_customer Nvarchar (60) , Total_transaction Decimal (9,3) ) GO
CREATE TABLE Product_price (
Id_price Int primary key , Price_unit Decimal (9,3) , Startdate_price Date , Enddate_price Date )
GO
CREATE TABLE Product (
Id_product Int primary key , Id_price Int
, foreign key (Id_price) references Product_price , Product_name Nvarchar (128)
30 CREATE TABLE Promotion
(
Id_promo Int primary key , Name_promo Nvarchar (128) , Startdate_promo Datetime , Enddate_promo Datetime )
GO
CREATE TABLE Promotion_bill (
Id_promo_bill Int primary key , Id_promo Int
, foreign key (Id_promo) references Promotion , Invoice_base_bill Nvarchar (128)
, Value_promo Decimal (9,3) )
GO
CREATE TABLE Promotion_product (
Id_promo_product Int primary key , Id_promo Int
, foreign key (Id_promo) references Promotion , Invoice_base_product Nvarchar (128)
) GO
CREATE TABLE Bill (
Id_bill Int primary key , Id_promo Int
, foreign key (Id_promo) references Promotion , Id_employee Int
, foreign key (Id_employee) references Employee , Id_customer Int
, foreign key (Id_customer) references Customer , Id_price Int
, foreign key (Id_price) references Product_price , Product_name Nvarchar (128)
31 , Customer_paid Decimal (9,3) , Othercosts Decimal (9,3) , Total Decimal (9,3) , Quantity Int ) GO
CREATE TABLE Bill_details (
Id_bill Int primary key references Bill , Product_name Nvarchar (128)
, Total Decimal (9,3) , Quantity Int
) GO
CREATE TABLE List_of_material (
Id_nvl Int primary key , Name_nvl Nvarchar (128) , Unit Nvarchar (20)
, Price_unit Decimal (9,3) )
GO
CREATE TABLE Material_norms (
Id_product Int primary key references Product , Name_nvl Nvarchar (128)
, Unit Nvarchar (128) , Quantity Int
) GO
CREATE TABLE Import_warehouse (
Id_import Int primary key , Id_nvl Int
, foreign key (Id_nvl) references List_of_material , Id_employee Int
, foreign key (Id_employee) references Employee , Date_import Datetime
, Name_nvl Nvarchar (128) , Unit Nvarchar (128) , Quantity_import Int
32 GO
CREATE TABLE Export_warehouse (
Id_export Int primary key , Id_nvl Int
, foreign key (Id_nvl) references List_of_material , Id_employee Int
, foreign key (Id_employee) references Employee , Id_product Int
, foreign key (Id_product) references Product , Date_export Datetime , Name_nvl Nvarchar (128) , Unit Nvarchar (20) , Quantity_export Int , Price_unit Decimal (9,3) , Price_total Decimal (9,3) ) GO
CREATE TABLE Supplier_contact (
Id_supplier Int primary key , Id_import Int
, foreign key (Id_import) references Import_warehouse , Name_supplier Nvarchar (128)
, Address_supplier Nvarchar (128) , Product_supplier Nvarchar (128) )
GO
CREATE TABLE Material_inventory (
Id_nvl Int primary key , Name_nvl Nvarchar (128) , Id_employee Int
, foreign key (Id_employee) references Employee , Quantity_inventory Int
, Unit Nvarchar (20) )
33 ** Các mối quan hệ được thể hiện:
Link hình ảnh chi tiết:Mô hình dữ liệu quan hệ
Hình 18: Mô hình dữ liệu quan hệ VI. Truy vấn
# Lọc ratên các sản phẩm có giá từ 40.000 trở lên và kích thước của sản phẩm là 'L' và ngày bắt đầu áp dụng mã là ngày 27/5/2022
SELECT p.Product_name FROM Product as p
INNER JOIN Product_price as pr ON p.Id_price = pr.Id_price
WHERE pr.Price_unit > 40000 AND p.Size = N'L' AND pr.Startdate_price = 27/5/2022
# Lọc ra tên sản phẩm, mã của sản phẩm mà tổng số lượng đã bán trong ngày 5/5/2022 là cao nhất
34
INNER JOIN Product_price as pr ON p.Id_price = pr.Id_price INNER JOIN Bill as b ON b.Id_price = pr.Id_price
WHERE b.Date_buy = 5/5/2022
GROUP BY p.Product_name, p.Id_product
SELECT * FROM LIST
WHERE LIST.SUM = ( SELECT Max(LIST.SUM) FROM LIST )
# Đếm số lượng nhân viên có tổng số ca làm việc lớn hơn 50 ca và đã vào làm được hơn 30 ngày tính từ ngày vào làm
SELECT em.Name_employee, SUM(esa.Total_nb_shift) as SUM FROM Employee as em INTO CountEm
INNER JOIN Employee_salary as esa ON em.Id_nb_shift = esa.Id_nb_shift WHERE DAY(GETDATE()) - DAY(em.Date_to_working) > 30
GROUP BY em.Name_employee
SELECT COUNT(*) FROM CountEm WHERE CountEm.SUM > 50
# Lọc ra danh sách các khách hàng có địa chỉ ở Quận 1, TP.HCM hoặc có hóa đơn lớn 1.000.000VNĐ kể từ ngày 26/5/2022 hoặc khách hàng cóđiểm tích lũy lớn hơn
0.
SELECT c.Id_customer, c.Name_customer FROM Customer as c
INNER JOIN Bill as b ON b.Id_customer = c.Id_customer
INNER JOIN Customer_type as ct ON ct.Id_customertype = b.Id_customertype
35
OR ( b.Total > 1.000.000 AND DAY(GETDATE()) - DAY(25/5/2022) >= 1) OR ct.Accumulated_point > 0
# Lọc ra những tên khách hàng có hóa đơn được khuyến mãi theo hình thức khuyến mãi theo sản phẩm, và có thời gian khuyến mãi là 3 ngày
SELECT c.Name_customer FROM Customer as c
INNER JOIN Bill as b ON c.Id_customer = b.Id_customer INNER JOIN Promotion as pr ON b.Id_promo = pr.Id_promo
INNER JOIN Promotion_bill as pr_b ON pr.Id_promo = pr_b.Id_promo WHERE DAY(pr.Enddate_promo) - DAY(pr.Startdate_promo) = 3
36
phần mềm quản lí vào trong các doanh nghiệp là một điều tất yếu. Phần mềm quản lý
quán cafe sẽ giúp giải quyết tất tần tật các nhu cầu quản lý trong quán cafe. Bằng cách áp dụng phần mềm vào quản lý, cửa hàng sẽ được vận hành nhanh hơn, đơn giản và chính xác hơn. Từ đó sẽ có nhiều thời gian để tìm kiếm khách hàng, có thời gian cho gia đình và các mối quan hệ khác.