Có thể nói rằng mô hình cơ sở dữ liệu EAV / CR là xấu. Mà nói,
Câu hỏi: Mô hình cơ sở dữ liệu, kỹ thuật hoặc mẫu nào nên được sử dụng để đối phó với "các lớp" thuộc tính mô tả các sản phẩm thương mại điện tử có thể thay đổi trong thời gian chạy?
Trong cơ sở dữ liệu thương mại điện tử tốt, bạn sẽ lưu trữ các lớp tùy chọn (như độ phân giải TV sau đó có độ phân giải cho từng TV, nhưng sản phẩm tiếp theo có thể không phải là TV và không có "độ phân giải TV"). Làm thế nào để bạn lưu trữ chúng, tìm kiếm hiệu quả và cho phép người dùng của bạn thiết lập các loại sản phẩm với các trường biến mô tả sản phẩm của họ? Nếu công cụ tìm kiếm thấy rằng khách hàng thường tìm kiếm TV dựa trên độ sâu của bảng điều khiển, bạn có thể thêm độ sâu bảng điều khiển vào các trường của mình, sau đó thêm một độ sâu duy nhất cho từng loại sản phẩm TV trong thời gian chạy.
Có một tính năng phổ biến trong số các ứng dụng thương mại điện tử tốt, nơi chúng hiển thị một bộ sản phẩm, sau đó có các menu bên "đi sâu vào" nơi bạn có thể xem "Độ phân giải TV" làm tiêu đề và năm Độ phân giải TV phổ biến nhất cho tìm thấy bộ. Bạn nhấp vào một và nó chỉ hiển thị TV có độ phân giải đó, cho phép bạn xem chi tiết hơn bằng cách chọn các danh mục khác trên menu bên. Các tùy chọn này sẽ là các thuộc tính sản phẩm động được thêm vào lúc chạy.
Thảo luận thêm:
Câu chuyện dài quá, có bất kỳ liên kết nào trên Internet hoặc mô tả mô hình có thể "sửa chữa" về mặt học thuật không? Tôi cảm ơn Noel Kennedy đã gợi ý một bảng danh mục, nhưng nhu cầu có thể lớn hơn thế. Tôi mô tả nó theo một cách khác dưới đây, cố gắng làm nổi bật ý nghĩa. Tôi có thể cần điều chỉnh quan điểm để giải quyết vấn đề hoặc tôi có thể cần đi sâu hơn vào EAV / CR.
Thích phản ứng tích cực với mô hình EAV / CR. Tất cả các nhà phát triển đồng nghiệp của tôi đều nói những gì Jeffrey Kemp đã chạm vào bên dưới: "các thực thể mới phải được mô hình hóa và thiết kế bởi một chuyên gia" (đưa ra khỏi bối cảnh, đọc phản hồi của ông bên dưới). Vấn đề là:
- các thực thể thêm và xóa các thuộc tính hàng tuần
(từ khóa tìm kiếm chỉ ra các thuộc tính trong tương lai) - thực thể mới đến hàng tuần
(sản phẩm được lắp ráp từ các bộ phận) - các thực thể cũ biến mất hàng tuần
(lưu trữ, ít phổ biến hơn, theo mùa)
Khách hàng muốn thêm thuộc tính cho sản phẩm vì hai lý do:
- biểu đồ tìm kiếm / so sánh giữa các bộ phận / từ khóa
- cấu hình sản phẩm tiêu dùng trước khi thanh toán
Các thuộc tính phải có ý nghĩa, không chỉ là một tìm kiếm từ khóa. Nếu họ muốn so sánh tất cả các loại bánh có "kem phủ kem", họ có thể nhấp vào bánh, nhấp vào chủ đề sinh nhật, nhấp vào kem phủ kem, sau đó kiểm tra tất cả các loại bánh thú vị khi biết tất cả chúng đều có kem phủ kem. Đây không phải là cụ thể cho bánh, chỉ là một ví dụ.