Avatar
1
minhvd Beginner
minhvd Beginner
Hỏi về cách thiết kế bảng user cho 2 đối tượng
Em có hệ thống thương mại điện tử có 2 app client: app mobile cho end user, app mobile cho store owner (cả 2 đều login bằng email, password hoặc mạng xã hội, 1 người vừa có thể là store owner vừa có thể là end user). Ở đây em thiết kế 1 microservice là user service để quản lý user. e băn khoăn giữa 2 cách thiết kế:
  • dùng 1 bảng user duy nhất, trong đó có cột role là dạng list để phân biệt
  • dùng 2 bảng riêng cho end user và store user.

1 cách khác nữa là làm hẳn 2 cái user service riêng, 1 cái cho end user, 1 cái cho store user. Theo anh hướng nào hợp lý ạ?

  • Answer
Remain: 5
1 Answer
Avatar
tvd12 Beginner
tvd12 Beginner
The Best Answer
Khi phân tích thiết kế thì em nên để ý đến nghiệp vụ trước thay vì vấn đề kỹ thuật. Thì ở đây anh thấy cả store user và end user để thuộc phân lớp là người dùng thông thường, vậy thì nên dùng 1 bảng duy nhất và phân quyền theo role em ạ vì:
  1. Em sẽ tận dụng được kiểm tra việc trùng username, email của cơ sở dữ liệu, vậy sẽ không phải xử lý distributed transaction phức tạp.
  2. Một user có thể là cả 2 vai trò thì khi em tổ chức một bảng thì việc update, lấy dữ liệu, quản lý access token, hay tất cả các bảng khác sẽ cực kỳ đơn giản mà không phải bổ sung thêm một trường để phân biệt loại user cho các bảng khác nữa.
  • 0
  • Reply