Data Model cơ bản cho BA: Table, Field, Primary Key, Foreign Key là gì?
Nếu bạn là newbie ITBA, sớm muộn bạn sẽ nghe mấy khứa Dev nói:
“Bảng này thiếu field.”
“Primary key là gì?”
“Bảng Order liên kết với User bằng foreign key.”
“Data model này chưa hợp lý.”
Và bạn bắt đầu thấy… hơi kỹ thuật 😅
Nhưng thật ra, BA không cần thiết kế database như Dev.
BA chỉ cần hiểu data được tổ chức như thế nào để viết requirement rõ hơn.
Vì một sự thật rất quan trọng:
Không hiểu data model = rất dễ viết sai logic hệ thống.
1️⃣ Table là gì?
Table là nơi lưu một nhóm dữ liệu cùng loại.
Bạn có thể hiểu đơn giản:
Table giống như một sheet trong Excel.
Ví dụ trong E-commerce:
users— lưu thông tin người dùngproducts— lưu thông tin sản phẩmorders— lưu thông tin đơn hàngpayments— lưu thông tin thanh toán
Ví dụ bảng users:
user_idnameemailphoneU001Anan@gmail.com090xxxU002Bìnhbinh@gmail.com091xxx
=> Với BA, khi nghe “table”, hãy nghĩ:
Hệ thống đang lưu nhóm dữ liệu nào?
2️⃣ Field là gì?
Field là từng thông tin nhỏ bên trong một table.
Nếu table giống như sheet Excel, thì field giống như cột.
Ví dụ bảng orders có các field:
order_iduser_idorder_statustotal_amountcreated_at
Ví dụ:
order_iduser_idorder_statustotal_amountO001U001PAID500000O002U002PENDING300000
=> Với BA, field rất quan trọng vì nó trả lời câu hỏi:
Màn hình cần hiển thị dữ liệu gì?
API cần trả field nào?
Field nào bắt buộc?
Field nào optional?
Field nào dùng để filter/search/report?
Ví dụ requirement mơ hồ:
Hiển thị thông tin đơn hàng.
Requirement rõ hơn:
Hiển thị
order_id,order_status,total_amount,created_at.
3️⃣ Primary Key là gì?
Primary Key là field dùng để định danh duy nhất một dòng dữ liệu trong table.
Nói đơn giản:
Primary Key giống như “số CCCD” của một record.
Ví dụ trong bảng users:
user_idnameemailU001Anan@gmail.comU002Bìnhbinh@gmail.com
Ở đây, user_id là Primary Key.
Vì:
Mỗi user có một
user_idduy nhấtKhông có 2 user trùng
user_idHệ thống dùng
user_idđể tìm đúng user
Ví dụ trong các bảng khác:
products: primary key làproduct_idorders: primary key làorder_idpayments: primary key làpayment_id
=> Với BA, Primary Key giúp bạn hiểu:
Hệ thống định danh đối tượng bằng gì?
Khi update/delete/search, dùng ID nào?
Làm sao tránh nhầm record?
Ví dụ:
Update trạng thái đơn hàng có
order_id = O001.
Rõ hơn rất nhiều so với:
Update đơn hàng của user An.
4️⃣ Foreign Key là gì?
Foreign Key là field dùng để liên kết dữ liệu giữa hai table.
Nói đơn giản:
Foreign Key giống như “sợi dây nối” giữa các bảng.
Ví dụ:
Bảng users:
user_idnameU001AnU002Bình
Bảng orders:
order_iduser_idtotal_amountO001U001500000O002U001200000O003U002300000
Trong bảng orders, field user_id là Foreign Key.
Nó cho biết:
Đơn O001 thuộc về user U001
Đơn O002 cũng thuộc về user U001
Đơn O003 thuộc về user U002
=> Nhờ Foreign Key, hệ thống biết:
User nào có những đơn hàng nào?
5️⃣ Ví dụ dễ hiểu: User - Order - Payment
Một flow E-commerce rất phổ biến:
User đặt hàng → Order được tạo → Payment được ghi nhận
Data model đơn giản có thể là:
Bảng users
user_idnameU001An
Bảng orders
order_iduser_idstatusO001U001PAID
Bảng payments
payment_idorder_idamountstatusP001O001500000SUCCESS
Quan hệ là:
users.user_id → orders.user_id
orders.order_id → payments.order_id
Nghĩa là:
Một user có thể có nhiều order
Một order có thể có một hoặc nhiều payment record
Payment phải biết nó thuộc order nào
=> Đây chính là cách BA bắt đầu hiểu hệ thống qua data.
6️⃣ Vì sao BA cần hiểu Data Model?
BA không cần thiết kế database quá sâu.
Nhưng BA cần hiểu data model để:
Viết requirement rõ hơn
Thay vì viết:
Hiển thị lịch sử giao dịch.
Bạn có thể hỏi:
Giao dịch lấy từ bảng nào?
Field nào cần hiển thị?
Sort theo
created_athaytransaction_time?Status nào được hiển thị?
Kiểm tra logic tốt hơn
Ví dụ bug:
User báo thanh toán rồi nhưng đơn chưa cập nhật.
BA biết kiểm tra mối quan hệ:
orders.order_id → payments.order_id
Nếu payment SUCCESS nhưng order vẫn PENDING, có thể có lỗi update trạng thái.
Làm việc với Dev dễ hơn
Khi Dev nói:
“Order đang join với Payment qua order_id.”
Bạn sẽ hiểu:
Hai bảng đang liên kết bằng
order_idCó thể kiểm tra payment của một order cụ thể
Nếu thiếu
order_id, dữ liệu sẽ không mapping được
7️⃣ Checklist Data Model cơ bản cho BA
Khi phân tích một chức năng mới, hãy tự hỏi:
Chức năng này cần lưu dữ liệu gì?
Dữ liệu nằm ở table nào?
Mỗi table có những field quan trọng nào?
Field nào là Primary Key?
Table này liên kết với table nào bằng Foreign Key?
Khi user thao tác, field nào được tạo mới/cập nhật?
Có field status không?
Có field timestamp như
created_at,updated_atkhông?
Kết
Data Model không phải kiến thức chỉ dành cho Dev.
Với BA, hiểu được:
Table + Field + Primary Key + Foreign Key
là bạn đã bắt đầu đọc được “xương sống dữ liệu” của hệ thống.
BA giỏi không chỉ hỏi:
“Màn hình hiển thị gì?”
BA giỏi còn hỏi:
“Dữ liệu đó đến từ đâu, được định danh bằng gì, và liên kết với dữ liệu nào khác?”
=> Nếu bạn là newbie ITBA, hãy học data model càng sớm càng tốt.
Vì khi hiểu data, bạn sẽ hiểu hệ thống sâu hơn rất nhiều.
Cho người mới bắt đầu thì đây nha ae, học lý thuyết + hướng dẫn áp dụng thực hành dự án để ghi vào CV (Quà tặng hơn 30 khóa ở đây):
=> https://www.facebook.com/groups/3514587515337829/posts/3618897148240198/
Đã có kiến thức BA cơ bản thì học các Khóa học chuyên sâu về các domain cùng case study thực tế: Bảo hiểm - ERP - Banking - E-commerce - Chính Phủ (GOV) - Logistis, tìm hiểu tại đây:
https://www.facebook.com/groups/3514587515337829/posts/3714548542008391



