Vor sechs Monaten stellte ich eine Frage zu Modellierungsdaten für meine App und erhielt einige Ratschläge, die mich auf STI hinwiesen ( Einzelheiten finden Sie unter Rails-Datenmodell - Best Practices-Frage ).
Ich habe damit herumgespielt, es etwas zum Laufen gebracht, mich dann abgelenkt und das Projekt unterbrochen.
Ich habe gerade angefangen, es von Grund auf neu zu entwickeln, mit dem Vorteil von 6 weiteren Monaten Programmier- / ROR-Erfahrung, und ich bin wieder einmal an diese Wand gestoßen, wenn es darum geht, Zutaten für meine Bierrezepte zu modellieren.
Um eine kurze Zusammenfassung zu geben, gehe ich davon aus, dass ich drei Zutatenarten (Malz, Hopfen und Hefe) habe - jede hat einige Attribute (Name, Preis, Verkäufer), aber jede hat auch Attribute, die für diese Zutatenart spezifisch sind. Sie sind alle verwandt (sie sind alle Zutaten), aber sie haben ein unterschiedliches "Verhalten" (zum Beispiel werden Körner püriert und es wäre logisch, mit dem umzugehen, was für Hopfen / Hefe usw. nicht gelten würde.)
Die Zutaten sind gerade so unterschiedlich, dass ich erwäge, nur drei separate Tabellen in der Datenbank zu haben ... aber was ist mit Controllern? Könnte ich einen einzelnen Ingredients-Controller verwenden, um die einzelnen Modelle zu verwalten?
Ich habe über Alternativen zu STI (Klassentabellenvererbung und Mehrtabellenvererbung) gelesen, aber alle Lösungen scheinen klobig. Gibt es Alternativen, die mir die Bequemlichkeit von STI bieten (z. B. das Abrufen aller Zutaten unabhängig vom Typ mit einer einzigen Tabellenabfrage) ohne die Nachteile (Nullfelder, unhandliche Tabellen, wenn Sie weiterhin Unterklassen und Felder hinzufügen usw.)
Entschuldigung, ich weiß, dass diese Frage etwas verschwommen ist, aber ich habe das Gefühl, dass ich keine saubere Lösung finden kann, und ich versuche jetzt herauszufinden, welche Methode da draußen das geringere Übel ist. Ich bin sicher, andere haben sich damit befasst, und ich würde gerne die Vor- und Nachteile verschiedener Lösungen hören. Vielen Dank!