Vấn đề duy nhất là thực sự không có cách nào thuận tiện để thực thi các mối quan hệ này. Bạn có thể sử dụng một khối lượng kích hoạt hoặc lưu trữ bảng chính trong mỗi cơ sở dữ liệu cá thể và chỉ cần hiển thị tất cả chúng dưới dạng siêu dữ liệu cho chủ, có thể sử dụng chế độ xem.
Nhược điểm lớn nhất, tôi nghĩ, phải làm với việc giữ cho dữ liệu chính xác và được đồng bộ hóa, trong ít nhất ba kịch bản ngoài đỉnh đầu của tôi (tất cả vẫn có thể là một vấn đề ngay cả khi bạn sử dụng trình kích hoạt):
- các giao dịch cơ sở dữ liệu chéo được phối hợp không đúng cách - ví dụ: một giao dịch sẽ thêm một hàng mới để làm chủ, chuyển giao danh tính cho một giao dịch khác và sau đó giao dịch đầu tiên quay trở lại.
- phục hồi từ một lỗi cơ sở dữ liệu - một cơ sở dữ liệu gặp sự cố, bạn phải khôi phục đến một thời điểm, có thể là trước khi các giao dịch thành công khác trong cơ sở dữ liệu khác kết thúc. Điều này có thể có nghĩa là nếu một cơ sở dữ liệu cá thể phải hoàn nguyên về thời gian sớm hơn, thì nó thiếu các hàng mà chủ nhân mong đợi; nếu chủ phải hoàn nguyên, có thể tất cả các cơ sở dữ liệu cá thể sẽ có các giá trị không tồn tại trong chủ.
- tính nhất quán sao lưu nói chung - nếu bạn cần khắc phục thảm họa, bạn sẽ gặp khó khăn trong việc giữ tất cả các bản sao lưu đầy đủ và nhật ký của bạn giao dịch nhất quán theo thời gian. Ảnh chụp nhanh hệ thống tệp không giúp ích gì cho điều này và ngay cả các Nhóm sẵn có cũng không đảm bảo tính nhất quán trong giao dịch cơ sở dữ liệu cho các cơ sở dữ liệu trong một Nhóm sẵn có. Nếu bạn gặp thảm họa và cần khôi phục cơ sở dữ liệu của mình sang một hệ thống mới, không có cách nào để chắc chắn rằng chúng sẽ nhất quán trong giao dịch.
Tất cả những gì đã nói, tôi đã luôn luôn và sẽ luôn là một fan hâm mộ của việc tách người thuê ra khỏi cơ sở dữ liệu của riêng họ và tôi thừa nhận có rủi ro liên quan đến cơ sở dữ liệu trung tâm - nhưng điều đó là cần thiết.
(Là một sang một bên, bạn nên sử dụng tên cho cơ sở dữ liệu của bạn không phải là thạc sĩ / ví dụ. master
Trong SQL Server chắc chắn có một ý nghĩa rõ ràng, và thậm chí đọc những lời của riêng tôi ở trên họ có thể mơ hồ. Tương tự cho instance
. Trong một kiếp trước tôi chạy một đa hệ thống -tenant và chúng tôi đã gọi cơ sở dữ liệu trung tâm Control
và cơ sở dữ liệu người thuê, tốt , Tenants
.)