Tôi đang cố tạo cơ sở dữ liệu chứa danh sách thiết bị. Tất cả các thiết bị sẽ có một số thuộc tính phổ biến (như nhà sản xuất, model #, serial #, vv), sau đó có các thuộc tính khác dành riêng cho một thiết bị nhất định (ví dụ, modem sẽ có quyền truy cập #, trong khi một bảng điều khiển năng lượng mặt trời sẽ có công suất đầu ra). Tôi không chắc chắn làm thế nào để đại diện cho các thuộc tính thay đổi với các nguyên tắc thiết kế cơ sở dữ liệu tốt, tôi đã cố gắng tìm kiếm trên web, nhưng tôi không hoàn toàn chắc chắn những gì để tìm kiếm.Thiết kế cơ sở dữ liệu tốt, số thuộc tính biến số
tôi đã đi lên với các giải pháp khả thi sau và những suy nghĩ ban đầu của tôi về họ:
Có một bảng lớn với tất cả các thuộc tính càng tốt và chỉ cần đặt rỗng mà nó không được áp dụng. Rõ ràng điều này có một số sai sót.
Có bảng riêng cho từng loại thiết bị. Điều này có vẻ như nó có thể là một cơn ác mộng để sử dụng, nếu tôi muốn in một danh sách của tất cả các thiết bị, làm thế nào để tôi biết bảng tra cứu?
Có bảng có thuộc tính chung và các bảng khác cho từng loại thiết bị được truy cập bằng khóa ngoài để lưu trữ thuộc tính bổ sung. Tôi có thể có thể làm cho công việc này, nhưng nó sẽ là cồng kềnh và chỉ không cảm thấy giống như một giải pháp rất tốt.
Mô hình loại thuộc tính-giá trị. Có vẻ như không phù hợp với những gì tôi muốn làm.
Tôi không có nhiều kinh nghiệm về cơ sở dữ liệu nên tôi đang học ở đây, bất kỳ liên kết nào liên quan đến vấn đề này hoặc "phải đọc" bài viết về thiết kế cơ sở dữ liệu sẽ được đánh giá cao. Cảm ơn!
EDIT: Trước hết, tôi phát hiện ra rằng tôi cần Google "Lập bản đồ thừa kế", điều đó có thể giúp bất kỳ ai khác có câu hỏi tương tự. Để giải quyết vấn đề tôi đã kết thúc bằng cách sử dụng lai # 2 và # 3. Nó thực sự khá dễ dàng, hoạt động tốt, và giải quyết vấn đề thêm các loại thiết bị bổ sung mà không có sự phức tạp của EAV. Cảm ơn tất cả các ý kiến và đề xuất!
chek câu trả lời trong bài đăng sau: http://stackoverflow.com/questions/870808/entity-attribute-value-database-vs-strict-relational-model-ecommerce-question –
Bài đăng này mâu thuẫn với một số bài viết khác tôi đọc nói EAV nên tránh, suy nghĩ bất cứ ai? – neurotik