Là cơ sở dữ liệu nhiều người thuê:
- Một máy chủ DB có cơ sở dữ liệu / lược đồ (giống hệt nhau) cho mỗi khách hàng / người thuê nhà?; hoặc là
- Máy chủ DB có cơ sở dữ liệu / lược đồ nơi khách hàng / người thuê nhà chia sẻ các bản ghi bên trong cùng một bảng?
Ví dụ, trong Tùy chọn # 1 ở trên, tôi có thể có một máy chủ MySQL tại mydb01.example.com
, và, nó có thể có một customer1
cơ sở dữ liệu bên trong nó. customer1
Cơ sở dữ liệu này có thể có 10 bảng cung cấp năng lượng cho ứng dụng của tôi cho khách hàng cụ thể đó (Khách hàng số 1). Nó cũng có thể có một customer2
cơ sở dữ liệu với chính xác 10 bảng trong đó, nhưng chỉ chứa dữ liệu cho Khách hàng số 2. Nó có thể có một customer3
cơ sở dữ liệu, customer4
cơ sở dữ liệu, v.v.
Trong Tùy chọn # 2 ở trên, sẽ chỉ có một cơ sở dữ liệu / lược đồ duy nhất myapp_db
, một lần nữa, với 10 bảng trong đó (cùng các bảng như trên). Nhưng ở đây, dữ liệu cho tất cả các khách hàng tồn tại trong 10 bảng đó và do đó họ "chia sẻ" các bảng. Và ở lớp ứng dụng, logic và kiểm soát bảo mật mà khách hàng có quyền truy cập vào bản ghi nào trong 10 bảng đó và phải hết sức cẩn thận để đảm bảo rằng Khách hàng số 1 không bao giờ đăng nhập vào ứng dụng và xem dữ liệu của Khách hàng # 3, v.v.
Những mô hình nào trong số này tạo thành một DB "nhiều người thuê" truyền thống? Và nếu không, thì ai đó có thể cung cấp cho tôi một ví dụ (sử dụng các kịch bản được mô tả ở trên) về DB nhiều người thuê là gì không?