Tôi đang tìm một số phản hồi về kế hoạch hiện tại của tôi về việc triển khai các trường tùy chỉnh trong đường ray. Tôi mới đến đường ray và phát triển ứng dụng nói chung và sẽ đánh giá cao bất kỳ ý kiến từ các cá nhân có kinh nghiệm hơn.Trường tùy chỉnh trong Rails hoạt động như một mẫu cho các mục nhập trong tương lai
nền
Ứng dụng: Theo dõi nếm thực phẩm và nước giải khát.
Những gì tôi đang cố gắng để mô hình:
- tài tạo ra một kiểu mẫu mới.
- Họ gọi: "Wine"
- Họ quyết định cho công ty của họ, họ muốn theo dõi các thuộc tính sau: Xuất xứ, Loại nho, Công ty, Độ cao, Nhiệt độ và hơn thế nữa.
- Giả định duy nhất về loại mẫu mà cơ sở dữ liệu của tôi tạo ra là nó có Tên. (ví dụ: cà phê, rượu vang, vv) phần còn lại là tất cả các trường tùy chỉnh do người dùng chỉ định.
Bây giờ, một loại mẫu đã được tạo.
- Người dùng bắt đầu tạo mẫu các loại rượu mẫu.
- Họ chọn tạo mẫu, chọn loại Rượu.
- Các trường mà chúng phải điền vào là các trường mà chúng đã chỉ định trước đó.
- Trong xứ họ đặt: Pháp, trong loại nho: họ đặt chardonnay, vv ..
-
Kế hoạch của tôi của phương pháp là như sau:
Khi người dùng tạo kiểu mẫu, lưu trữ các trường tùy chỉnh dưới dạng mảng hoặc trong một số định dạng chuỗi và giữ nó dưới một cột được gọi là dữ liệu.
SampleType
tên
rượu
dữ liệu
[origin, grape_type, company, ...]
Khi người dùng muốn tạo ra một mẫu của loại Rượu: Tôi nhìn lên mẫu loại rượu, cho mỗi khóa trong cột dữ liệu, nó tạo ra fo các trường rm. Khi người dùng gửi dữ liệu, tôi tạo một băm của tất cả các tên trường tùy chỉnh và dữ liệu tương ứng của chúng.Tôi serialize nó và lưu nó trong một hash trong một cột dữ liệu như ví dụ:
mẫu
loại
rượu
dữ liệu
{ origin: "France", grape_type: "Pinot Grigio, ... }
Kế hoạch của tôi vào lúc này là sử dụng hstore của PostgreSQL để triển khai băm trong cột dữ liệu.
Câu hỏi của tôi là:
- Đây có phải là một giải pháp hợp lệ cho những gì tôi đang cố gắng để làm gì?
- Tôi có gặp sự cố khi người dùng thay đổi trường tùy chỉnh nào họ muốn không?
- Bất kỳ mối quan ngại nào khác mà tôi nên tính đến?
- Mongodb và các db khác có phải là lựa chọn tốt hơn cho loại mô hình này không?
Tôi đã được sử dụng liên kết sau đây để tham khảo: http://schneems.com/post/19298469372/you-got-nosql-in-my-postgres-using-hstore-in-rails http://blog.artlogic.com/2012/09/13/custom-fields-in-rails/
Cũng như nhiều bài đăng tràn ngăn xếp khác, tuy nhiên, dường như không có bài đăng nào theo cách tôi đề cập ở trên.
Mọi nhận xét đều được đánh giá cao.
scrozier, cảm ơn câu trả lời của bạn. Tôi đã lên kế hoạch triển khai các phân tích cơ bản, tìm kiếm, phân loại trên các trường này, mặc dù bây giờ tôi đang mệt mỏi hơn về việc triển khai. Không có mô hình nào để thực hiện điều này tốt, có vẻ như là nếu CMS phải đối phó với loại vấn đề này mọi lúc. Tôi sẽ để câu hỏi mở lâu hơn một chút cho đến khi chấp nhận câu trả lời. – jtgi