Sau topic này Cách thiết kế database cho thực thể có nhiều trường hợp, nhiều loại,... với số lượng thuộc tính khác nhau thì em còn 1 vấn đề chưa thông ạ.
Ví dụ: Em có 1 cửa hàng bán xe máy: cả cửa hàng chỉ có 2 loại xe là honda wave alpha và honda airblade. Tổng cộng 10 chiếc xe thì em phải thiết kế database như thế nào?
Em có 2 cách lưu thực thể xe máy như sau:
Cách 1: lưu mẫu xe, một bảng, bảng xe có 2 dòng
KHÔNG phân biệt những chiếc xe với nhau
nên các đơn hàng của khách có thể cùng chung mã xe, bảng xe và bảng đơn hàng có quan hệ 1 nhiều (đơn hàng 1, mã xe nhiều)
+-------------+------------------+----------+
| Mã xe | Tên xe | Số lượng |
+-------------+------------------+----------+
| HD_WAVE | Honda wave alpha | 3 |
+-------------+------------------+----------+
| HD_AIRBLADE | Honda airblade | 7 |
+-------------+------------------+----------+
+-------------+------------------+----------+
| Mã xe | Tên xe | Số lượng |
+-------------+------------------+----------+
| HD_WAVE | Honda wave alpha | 3 |
+-------------+------------------+----------+
| HD_AIRBLADE | Honda airblade | 7 |
+-------------+------------------+----------+
Cách 2: CÓ phân biệt những chiếc xe với nhau
.Lưu tất cả 10 chiếc xe trong cửa hàng nên các đơn hàng của khách có thể cùng chung mã xe, bảng xe và bảng đơn hàng có quan hệ 1:1 (một chiếc xe chỉ xuất hiện trong 1 đơn hàng)
+----------------+----------+--------+
| Mã xe | Số khung | Số máy |
+----------------+----------+--------+
| HD_WAVE_01 | 123 | 321 |
+----------------+----------+--------+
| HD_WAVE_02 | 111 | 333 |
+----------------+----------+--------+
| HD_WAVE_03 | 666 | 777 |
+----------------+----------+--------+
| HD_AIRBLADE_01 | 456 | 789 |
+----------------+----------+--------+
| HD_AIRBLADE_N | N... | N... |
+----------------+----------+--------+
| HD_AIRBLADE_10 | 655 | 999 |
+----------------+----------+--------+
Hay là phải tách ra thành 3 bảng :
+----------------+----------+--------+
| Mã xe | Số khung | Số máy |
+----------------+----------+--------+
| HD_WAVE_01 | 123 | 321 |
+----------------+----------+--------+
| HD_WAVE_02 | 111 | 333 |
+----------------+----------+--------+
| HD_WAVE_03 | 666 | 777 |
+----------------+----------+--------+
| HD_AIRBLADE_01 | 456 | 789 |
+----------------+----------+--------+
| HD_AIRBLADE_N | N... | N... |
+----------------+----------+--------+
| HD_AIRBLADE_10 | 655 | 999 |
+----------------+----------+--------+
- Bảng 1 là bảng info xe, specification xe
==> dành cho nhân viên nhập liệu viết content cho xe, SEO xe. - Bảng 2 chủ yếu quan tâm đến số lượng của mỗi MẪU XE
==> dành cho nhân viên kế toán - Bảng 3 quản lý từng chiếc xe, VD: chiếc 1 xước trái, chiếc x bị thủng lỗ, chiếc abc bị nổ lốp,…
==> dành cho nhân viên kho, bảo vệ
Quan trong là nếu làm 3 bảng như vậy thì bảng nào biểu diễn cho thực thể xe? những bảng còn lại gọi là gì? bảng tạm, bảng phụ hay bảng bổ sung? hay cả 3 bảng đều gọi là thực thể xe? mỗi lần giám đốc muốn query xe thì join cả 3 bảng lại?
Mong được giải thích! Em cảm ơn
Ảnh mạng minh họa không quảng cáo