Sáu tháng trước, tôi đã hỏi một câu hỏi về mô hình hóa dữ liệu cho ứng dụng của mình và nhận được một số lời khuyên chỉ cho tôi về STI (xem mô hình dữ liệu Rails - câu hỏi thực tiễn tốt nhất để biết chi tiết).
Tôi chơi xung quanh với nó, làm cho nó hoạt động phần nào, và sau đó bị phân tâm và đưa dự án vào tình trạng gián đoạn.
Tôi mới bắt đầu phát triển lại từ đầu, với lợi ích sau 6 tháng trải nghiệm lập trình / ROR, và tôi lại một lần nữa chạm vào bức tường này khi nói đến việc tạo mô hình các thành phần cho công thức nấu bia của mình.
Để tóm tắt nhanh, giả sử tôi có ba loại thành phần (mạch nha, hoa bia và men) - mỗi loại chia sẻ một vài thuộc tính (tên, giá, nhà cung cấp) nhưng mỗi loại cũng có các thuộc tính cụ thể cho loại thành phần đó. Tất cả chúng đều liên quan (tất cả đều là thành phần) nhưng chúng có "hành vi" khác nhau (ví dụ, ngũ cốc được nghiền và sẽ có logic để xử lý những thứ không áp dụng cho hoa bia / men, v.v ...)
Các thành phần chỉ đủ khác nhau để tôi dự tính chỉ có ba bảng riêng biệt trong db ... nhưng còn bộ điều khiển thì sao? Tôi có thể sử dụng một bộ điều khiển Thành phần duy nhất để quản lý các mô hình riêng biệt không?
Tôi đã đọc về các lựa chọn thay thế cho STI (kế thừa bảng lớp và kế thừa nhiều bảng) nhưng tất cả các giải pháp có vẻ không hợp lý. Có bất kỳ lựa chọn thay thế nào mang lại cho tôi sự tiện lợi của STI (chẳng hạn như nhận tất cả các thành phần, bất kể loại nào, với một truy vấn bảng duy nhất) mà không có nhược điểm (trường null, bảng khó sử dụng khi bạn tiếp tục thêm các lớp con và trường, v.v.)
Xin lỗi, tôi biết câu hỏi này hơi mờ, nhưng tôi cảm thấy mình không thể tìm ra giải pháp sạch và giờ tôi đang cố gắng tìm ra phương pháp nào ngoài kia là xấu xa hơn. Tôi chắc rằng những người khác đã giải quyết vấn đề này và tôi rất muốn nghe những ưu / nhược điểm của các giải pháp khác nhau. Cảm ơn!