Tôi phải thêm chức năng vào một ứng dụng hiện có và tôi đã chạy vào tình huống dữ liệu mà tôi không chắc chắn cách lập mô hình. Tôi đang bị hạn chế trong việc tạo ra các bảng và mã mới. Nếu tôi cần phải thay đổi cấu trúc hiện tại, tôi nghĩ rằng khách hàng của tôi có thể từ chối đề xuất .. mặc dù nếu cách duy nhất của nó để làm cho nó đúng, đây là những gì tôi sẽ phải làm.Làm thế nào để mô hình hóa mối quan hệ loại trừ lẫn nhau trong SQL Server
Tôi có một bảng Mục có thể liên kết với bất kỳ số lượng bảng nào và các bảng này có thể tăng theo thời gian. Mục chỉ có thể liên kết với một bảng khác, nhưng bản ghi trong bảng khác có thể có nhiều mục được liên kết với nó.
Ví dụ về các bảng/thực thể được liên kết là Person
, Vehicle
, Building
, Office
. Đây là tất cả các bảng riêng biệt.
Ví dụ về mục là Pen
, Stapler
, Cushion
, Tyre
, A4 Paper
, Plastic Bag
, Poster
, Decoration"
Ví dụ một Poster
có thể được phân bổ cho một Person
hoặc Office
hoặc Building
. Trong tương lai nếu họ thêm một bảng Conference Room
nó cũng có thể được thêm vào đó.
suy nghĩ intital của tôi là:
Item
{
ID,
Name
}
LinkedItem
{
ItemID,
LinkedToTableName,
LinkedToID
}
Trường LinkedToTableName
sau đó sẽ cho phép tôi để xác định các bảng đúng liên kết đến trong mã của tôi.
Tôi không quá hài lòng với giải pháp này, nhưng tôi hoàn toàn không thể nghĩ ra bất kỳ điều gì khác. Hãy giúp tôi! :)
Cảm ơn!
Sẽ giúp ích nếu bạn giải thích thêm về loại dữ liệu bạn đang lưu trữ và lý do; ví dụ: các bài đăng trên blog, người hoặc mục trong siêu thị, v.v ...? Các bảng mục tiêu đại diện cho điều gì? Tôi nghĩ rằng trừu tượng của bạn bị hỏng, nhưng hầu như không thể nói tại sao, hoặc đề xuất một cách tiếp cận khác mà không biết vấn đề bạn đang cố giải quyết với nó. –
Cảm ơn Rowland. Tôi đã cố gắng thêm vào câu hỏi của mình. Xem Chỉnh sửa Q. Tôi sẽ chỉnh sửa lại nếu điều này vẫn chưa đủ thông tin :) – littlechris