Sto cercando un feedback sul mio piano corrente di implementazione di campi personalizzati in rail. Sono nuovo alle guide e allo sviluppo di app in generale e apprezzerei qualsiasi commento da parte di individui più esperti.Campi personalizzati in Rails che fungono da modello per le voci future
Sfondo
L'applicazione: Tenere traccia di alimenti e bevande degustazioni.
Quello che sto cercando di modello:
- utente crea un nuovo tipo di campione.
- lo chiamano: "Vino"
- Decidono per la loro azienda, vorrebbero tenere traccia dei seguenti attributi: Origine, Uva, Società, Elevation, mantenimento della temperatura, e altro ancora.
- Le uniche ipotesi su un tipo di esempio che il mio database ha realizzato è che ha un Nome. (ad esempio caffè, vino, ecc.) il resto sono tutti campi personalizzati specificati dall'utente.
Ora che è stato creato un tipo di esempio.
- L'utente inizia a creare campioni del tipo di vino campione.
- Scelgono di creare il campione, scegliere di tipo Vino.
- I campi che devono essere compilati sono quelli specificati in precedenza.
- di origine hanno messo: la Francia, nel tipo di uva: hanno messo chardonnay, ecc ..
-
Il mio piano di approccio è il seguente:
Quando un utente crea il tipo di esempio, memorizza i campi personalizzati come una matrice o in un formato stringa e tienilo sotto una colonna chiamata data.
SampleType
nome
vino
dati
[origin, grape_type, company, ...]
Quando un utente vuole creare un campione di Tipo di vino: alzo lo sguardo del campione digitare wine, per ogni chiave nella colonna di dati, crea fo campi rm. Quando l'utente invia i dati, creo un hash di tutti i nomi dei campi personalizzati e dei relativi dati.I serializzare e conservarla in un hash in una colonna di dati come ad esempio:
Esempio
tipo
vino
dati
{ origin: "France", grape_type: "Pinot Grigio, ... }
Il mio piano in questo momento è utilizzare l'hstore di PostgreSQL per implementare l'hashing nella colonna di dati.
Le mie domande sono:
- È questo una valida soluzione per quello che sto cercando di fare?
- Si verificheranno problemi quando gli utenti modificano i campi personalizzati che desiderano?
- Eventuali altri dubbi che dovrei prendere in considerazione?
- Is mongodb e altri tali db sono una scelta migliore per questo tipo di modello?
Sto usando i seguenti link come riferimento: 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/
Così come molti altri messaggi di overflow dello stack, tuttavia nessuno sembra utilizzarlo come menzionato sopra.
Eventuali commenti sono apprezzati.
scrozier, grazie per la risposta. Ho pianificato di implementare analisi di base, cercare, ordinare anche in questi campi, anche se ora sono più stanco riguardo all'implementazione. Non c'è motivo di fare questo genere di cose bene, sembra come se CMS avrebbe dovuto affrontare questo tipo di problema tutto il tempo. Lascerò la domanda aperta ancora per un po 'fino ad accettare una risposta. – jtgi