Tôi có ba bảng: Ứng dụngMS SQL Server bảng chéo chế
1) (AppID, Name)
2) Màn hình (ScreenId, Name)
3) Mối quan hệ (AppID, ScreenId)
Bây giờ tôi muốn áp dụng một số hạn chế trên bảng liên quan: Có thể gán cùng một màn hình cho nhiều ứng dụng, nhưng không thể có hai màn hình có cùng tên được gán cho cùng một ứng dụng.
Tôi biết tôi có thể thêm Screen.Name vào bảng quan hệ và sau đó tạo PK trên AppId và Screen.Name, nhưng tôi không muốn giải pháp như vậy, vì Screen.Name có thể thay đổi.
Tôi có các tùy chọn bổ sung nào để đạt được hạn chế như vậy?
Tôi tự hỏi liệu có cái gì đó như thế này không. :) Tốt hơn nhiều so với kích hoạt. :) – Jonathan
Phương pháp này "xác thực" dữ liệu khi thay đổi tên màn hình hay nó sẽ chỉ kiểm tra dữ liệu khi truy cập chế độ xem? –
@AlexDn - vâng, điều này sẽ thực thi ràng buộc khi thay đổi được thực hiện trong các bảng bên dưới. Nếu bạn truy cập trang tôi đã liên kết, bạn sẽ nhận thấy rằng có rất nhiều hạn chế về lượt xem được lập chỉ mục. Hầu hết các hạn chế này tồn tại * vì * chúng cho phép hoạt động bảo trì bắt buộc xảy ra trên mỗi giao dịch trong các bảng cơ sở một cách hiệu quả. –