บทความ
การออกแบบฐานข้อมูล POS โดยทั่วไปแล้วมักจะมี Table ข้อมูลต่อไปนี้
การออกแบบฐานข้อมูล POS ต้องพิจารณาความต้องการของธุรกิจและร้านค้าเพื่อให้ฐานข้อมูลมีความสอดคล้องและเหมาะสมกับการทำงานของ POS ได้ดีที่สุด โดยโครงสร้างของฐานข้อมูล POS สามารถออกแบบได้หลายแบบ แต่โดยทั่วไปแล้วมักจะมี Table หรือตารางฐานข้อมูลต่อไปนี้:
-
ตารางสินค้า (Products) - เก็บข้อมูลสินค้า ได้แก่ ชื่อสินค้า, ราคา, ประเภทสินค้า, จำนวนสินค้าในสต็อก, วันที่สร้างสินค้า, วันที่แก้ไขสินค้า ฯลฯ
-
ตารางลูกค้า (Customers) - เก็บข้อมูลลูกค้า ได้แก่ ชื่อลูกค้า, ที่อยู่, เบอร์โทรศัพท์, อีเมล, วันเกิด, วันที่ลงทะเบียนลูกค้า ฯลฯ
-
ตารางการขาย (Sales) - เก็บข้อมูลการขาย ได้แก่ รหัสการขาย, วันที่ขาย, รายการสินค้า, ราคารวม, จำนวนสินค้า, ลูกค้าที่ซื้อ, วันที่บันทึกการขาย ฯลฯ
-
ตารางพนักงาน (Employees) - เก็บข้อมูลพนักงาน ได้แก่ ชื่อ-นามสกุล, เลขบัตรประจำตัวประชาชน, ตำแหน่งงาน, เบอร์โทรศัพท์, อีเมล, วันที่เริ่มทำงาน ฯลฯ
-
ตารางการชำระเงิน (Payments) - เก็บข้อมูลการชำระเงิน ได้แก่ รหัสการชำระเงิน, วันที่ชำระเงิน, จำนวนเงิน, วิธีการชำระเงิน
ตาราง Product Table:
Field Name | Data Type | Description |
---|---|---|
product_id | INT | รหัสสินค้า (Primary Key) |
name | VARCHAR | ชื่อสินค้า |
price | DECIMAL | ราคาสินค้า |
quantity | INT | ปริมาณคงเหลือของสินค้า |
category | VARCHAR | ประเภทสินค้า |
ตัวอย่างข้อมูลในตาราง Product Table:
product_id | name | price | quantity | category |
---|---|---|---|---|
1 | กาแฟเย็น | 50.00 | 20 | เครื่องดื่ม |
2 | ซีบราวนี่ | 40.00 | 15 | ขนมปัง |
3 | แฮมเบอร์เกอร์ | 80.00 | 10 | อาหารจานหลัก |
4 | ส้มตำไทย | 60.00 | 18 | อาหารจานด่วน |
ตาราง Customer Table:
Field Name | Data Type | Description |
---|---|---|
customer_id | INT | รหัสลูกค้า (Primary Key) |
name | VARCHAR | ชื่อลูกค้า |
address | VARCHAR | ที่อยู่ลูกค้า |
phone_number | VARCHAR | หมายเลขโทรศัพท์ลูกค้า |
VARCHAR | อีเมลล์ลูกค้า |
ตัวอย่างข้อมูลในตาราง Customer Table:
customer_id | name | address | phone_number | |
---|---|---|---|---|
1 | นายสมชาย | 55/5 ถนนประชาอุทิศ | 089-123-4567 | somchai@gmail.com |
2 | นางสมหญิง | 123/4 ถนนเพชรเกษม | 082-345-6789 | somying@hotmail.com |
3 | นายสมหมาย | 789/2 ถนนสุขุมวิท | 085-678-1234 | sommai@gmail.com |
ตาราง Sales Table:
Field Name | Data Type | Description |
---|---|---|
sale_id | INT | รหัสการขาย (Primary Key) |
customer_id | INT | รหัสลูกค้า (Foreign Key) |
employee_id | INT | รหัสพนักงานที่ทำการขา |
นี่คือ SQL สำหรับสร้างตาราง Product และแทรกข้อมูลเบื้องต้น:
CREATE TABLE Product (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(255),
ProductDescription VARCHAR(255),
ProductPrice DECIMAL(10,2),
ProductQuantity INT
);
INSERT INTO Product (ProductID, ProductName, ProductDescription, ProductPrice, ProductQuantity)
VALUES (1, 'T-Shirt', 'ยี่ห้อ X ไซส์ M', 500, 50),
(2, 'Jeans', 'ยี่ห้อ Y ไซส์ L', 1000, 30),
(3, 'Sneakers', 'ยี่ห้อ Z ไซส์ 42', 2000, 20);
ในตัวอย่างนี้ เราได้สร้างตาราง Product โดยมี ProductID เป็น Primary Key และคอลัมน์อื่น ๆ ที่เกี่ยวข้องกับสินค้า เช่น ProductName, ProductDescription, ProductPrice และ ProductQuantity.
จากนั้น เราใช้คำสั่ง INSERT INTO ในการเพิ่มข้อมูลสินค้าลงในตาราง Product โดยกำหนดค่าให้กับ ProductID, ProductName, ProductDescription, ProductPrice และ ProductQuantity ตามลำดับ จากนั้นเราก็ใช้ VALUES ในการกำหนดข้อมูลให้กับแต่ละคอลัมน์ในแต่ละแถว โดยคั่นคอลัมน์ด้วยเครื่องหมายจุลภาค (,) และแถวด้วยคำสั่ง (,).
หากต้องการแทรกข้อมูลสินค้าเพิ่มเติมในตาราง Product เราสามารถใช้คำสั่ง INSERT INTO อีกครั้งโดยระบุค่าใหม่ใน VALUES ตามลำดับของคอลัมน์ในตารางได้ โดยจะต้องระบุ Primary Key ที่ไม่ซ้ำกับข้อมูลที่มีอยู่แล้วในตาราง Product เพื่อป้องกันการเพิ่มข้อมูลซ้ำกัน ซึ่งอาจจะเป็นข้อผิดพลาดในการออกแบบฐานข้อมูล.
นี่คือ SQL สำหรับสร้างตาราง Customer และแทรกข้อมูลเบื้องต้น:
CREATE TABLE Customer (
CustomerID INT PRIMARY KEY,
CustomerName VARCHAR(255),
CustomerAddress VARCHAR(255),
CustomerPhone VARCHAR(20)
);
INSERT INTO Customer (CustomerID, CustomerName, CustomerAddress, CustomerPhone)
VALUES (1, 'สมชาย', '123 ถนนสุขุมวิท', '089-123-4567'),
(2, 'สมหญิง', '456 ถนนพหลโยธิน', '082-345-6789');
ในตัวอย่างนี้ เราได้สร้างตาราง Customer โดยมี CustomerID เป็น Primary Key และคอลัมน์อื่น ๆ ที่เกี่ยวข้องกับลูกค้า เช่น CustomerName, CustomerAddress และ CustomerPhone.
จากนั้น เราใช้คำสั่ง INSERT INTO ในการเพิ่มข้อมูลลูกค้าลงในตาราง Customer โดยกำหนดค่าให้กับ CustomerID, CustomerName, CustomerAddress และ CustomerPhone ตามลำดับ จากนั้นเราก็ใช้ VALUES ในการกำหนดข้อมูลให้กับแต่ละคอลัมน์ในแต่ละแถว โดยคั่นคอลัมน์ด้วยเครื่องหมายจุลภาค (,) และแถวด้วยคำสั่ง (,).
หากต้องการแทรกข้อมูลลูกค้าเพิ่มเติมในตาราง Customer เราสามารถใช้คำสั่ง INSERT INTO อีกครั้งโดยระบุค่าใหม่ใน VALUES ตามลำดับของคอลัมน์ในตารางได้ โดยจะต้องระบุ Primary Key ที่ไม่ซ้ำกับข้อมูลที่มีอยู่แล้วในตาราง Customer เพื่อป้องกันการเพิ่มข้อมูลซ้ำกัน ซึ่งอาจจะเป็นข้อผิดพลาดในการออกแบบฐานข้อมูล.
นี่คือ SQL สำหรับสร้างตาราง Sales และแทรกข้อมูลเบื้องต้น:
CREATE TABLE Sales (
SalesID INT PRIMARY KEY,
SalesDate DATE,
EmployeeID INT,
CustomerID INT,
TotalPrice DECIMAL(10,2),
FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID),
FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID)
);
INSERT INTO Sales (SalesID, SalesDate, EmployeeID, CustomerID, TotalPrice)
VALUES (1, '2022-03-29', 101, 1, 1500),
(2, '2022-03-30', 102, 2, 3000);
ในตัวอย่างนี้ เราได้สร้างตาราง Sales โดยมี SalesID เป็น Primary Key และ EmployeeID กับ CustomerID เป็น Foreign Key ที่อ้างอิงจากตาราง Employee และ Customer ตามลำดับ โดยคอลัมน์ TotalPrice เป็นคอลัมน์ที่เก็บข้อมูลจำนวนเงินรวมของการขาย.
และเพิ่มข้อมูลการขายในตารางด้วยคำสั่ง INSERT INTO โดยกำหนดค่าให้กับ SalesID, SalesDate, EmployeeID, CustomerID และ TotalPrice ตามลำดับ จากนั้นเราก็ใช้ VALUES ในการกำหนดข้อมูลให้กับแต่ละคอลัมน์ในแต่ละแถว โดยคั่นคอลัมน์ด้วยเครื่องหมายจุลภาค (,) และแถวด้วยคำสั่ง (,).
หากต้องการแทรกข้อมูลในตาราง Sales เพิ่มเติม เราสามารถใช้คำสั่ง INSERT INTO อีกครั้งโดยระบุค่าใหม่ใน VALUES ตามลำดับของคอลัมน์ในตารางได้ โดยจะต้องระบุ Primary Key ที่ไม่ซ้ำกับข้อมูลที่มีอยู่แล้วในตาราง Sales เพื่อป้องกันการเพิ่มข้อมูลซ้ำกัน ซึ่งอาจจะเป็นข้อผิดพลาดในการออกแบบฐานข้อมูล.
นี่คือ SQL สำหรับสร้างตาราง Employee และแทรกข้อมูลเบื้องต้น:
CREATE TABLE Employee (
EmployeeID INT PRIMARY KEY,
EmployeeName VARCHAR(255),
EmployeeAddress VARCHAR(255),
EmployeePhone VARCHAR(20),
EmployeeEmail VARCHAR(255),
EmployeeSalary DECIMAL(10,2)
);
INSERT INTO Employee (EmployeeID, EmployeeName, EmployeeAddress, EmployeePhone, EmployeeEmail, EmployeeSalary)
VALUES (101, 'สมพงษ์', '123 ถนนสุขุมวิท', '089-123-4567', 'sompong@example.com', 20000),
(102, 'สมศักดิ์', '456 ถนนพหลโยธิน', '082-345-6789', 'somssak@example.com', 25000);
ในตัวอย่างนี้ เราได้สร้างตาราง Employee โดยมี EmployeeID เป็น Primary Key และคอลัมน์อื่น ๆ ที่เกี่ยวข้องกับพนักงาน เช่น EmployeeName, EmployeeAddress, EmployeePhone, EmployeeEmail และ EmployeeSalary.
จากนั้น เราใช้คำสั่ง INSERT INTO ในการเพิ่มข้อมูลพนักงานลงในตาราง Employee โดยกำหนดค่าให้กับ EmployeeID, EmployeeName, EmployeeAddress, EmployeePhone, EmployeeEmail และ EmployeeSalary ตามลำดับ จากนั้นเราก็ใช้ VALUES ในการกำหนดข้อมูลให้กับแต่ละคอลัมน์ในแต่ละแถว โดยคั่นคอลัมน์ด้วยเครื่องหมายจุลภาค (,) และแถวด้วยคำสั่ง (,).
หากต้องการแทรกข้อมูลพนักงานเพิ่มเติมในตาราง Employee เราสามารถใช้คำสั่ง INSERT INTO อีกครั้งโดยระบุค่าใหม่ใน VALUES ตามลำดับของคอลัมน์ในตารางได้ โดยจะต้องระบุ Primary Key ที่ไม่ซ้ำกับข้อมูลที่มีอยู่แล้วในตาราง Employee เพื่อป้องกันการเพิ่มข้อมูลซ้ำกัน ซึ่งอาจจะเป็นข้อผิดพลาดในการออกแบบฐานข้อมูล.
นี่คือ SQL สำหรับสร้างตาราง Payment และแทรกข้อมูลเบื้องต้น:
CREATE TABLE Payment (
PaymentID INT PRIMARY KEY,
PaymentType VARCHAR(255),
PaymentAmount DECIMAL(10,2),
PaymentDate DATE,
OrderID INT,
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID)
);
INSERT INTO Payment (PaymentID, PaymentType, PaymentAmount, PaymentDate, OrderID)
VALUES (1, 'เงินสด', 2000, '2023-03-29', 1001),
(2, 'บัตรเครดิต', 1500, '2023-03-29', 1002);
ในตัวอย่างนี้ เราได้สร้างตาราง Payment โดยมี PaymentID เป็น Primary Key และคอลัมน์อื่น ๆ ที่เกี่ยวข้องกับการชำระเงิน เช่น PaymentType, PaymentAmount, PaymentDate และ OrderID.
ในตาราง Payment เราได้ใช้ FOREIGN KEY เพื่ออ้างอิงไปยังตาราง Orders โดยอ้างอิงจาก OrderID. นี่คือตัวอย่างการอ้างอิงและการใช้งานความสัมพันธ์ในการออกแบบฐานข้อมูล.
จากนั้น เราใช้คำสั่ง INSERT INTO ในการเพิ่มข้อมูลการชำระเงินลงในตาราง Payment โดยกำหนดค่าให้กับ PaymentID, PaymentType, PaymentAmount, PaymentDate และ OrderID ตามลำดับ โดยในตัวอย่างนี้เรากำหนด PaymentType เป็น 'เงินสด' และ 'บัตรเครดิต' และใช้ค่า OrderID ในการอ้างอิงไปยังข้อมูลในตาราง Orders โดยคำสั่ง REFERENCES.
หากต้องการแทรกข้อมูลการชำระเงินเพิ่มเติมในตาราง Payment เราสามารถใช้คำสั่ง INSERT INTO อีกครั้งโดยระบุค่าใหม่ใน VALUES ตามลำดับของคอลัมน์ในตารางได้ โดยจะต้องระบุ Primary Key ที่ไม่ซ้ำกับข้อมูลที่มีอยู่แล้วในตาราง Payment เพื่อป้องกันการเพิ่มข้อมูลซ้ำกัน
หนังสือพัฒนาตัวเอง
จุดเริ่มต้นที่ชัดเจน