Ich versuche zu entscheiden, wie einige Daten in meiner Datenbank gespeichert werden. (SQLite) Lassen Sie uns sagen, wir haben zwei Tabellen: Attribut und TypDatenbank: Speichern Sie Wert, der entweder numerisch oder alphanumerisch sein kann
Tabellentyp ist mehr oder weniger wie ein Enum, es alle Arten speichert in meinem Modell vorhandenen (Integer, Real, Alphanumeric zum Beispiel)
Tabelle Attribut enthält Attribute, ein Datensatz sieht wie folgt aus:
Attribute :
id : its id
name : name of the attribute
value : ??? (the main question here)
type : foreign key to table type
So ein Attribut vom Typ Integer sein kann, Real oder alphanumerische. Ich bin mir nicht sicher, wie ich fortfahren soll, um den Wert des Attributs abhängig vom Typ zu speichern.
Ich habe bisher 3 Lösungen in Betracht gezogen:
Lösung 1: Der „Wert“ Feld des Attributs vom Typ String ist, und ich konvertieren in dem betreffenden Typ programmaticaly
Lösung 2: Ich schaffe mehr " value "field like: intValue, realValue und alphanValue, und setzen NULL in irrelevante Felder je nach Typ
Lösung 3: Ich erstelle 3 weitere Tabellen, IntValue, RealValue und AlphaNValue mit Fremdschlüssel für das zugehörige Attribut.
Ich möchte wissen, welche Lösung in Bezug auf Leistung und Konsistenz besser ist, oder wenn es eine andere relevante Lösung gibt, an die ich nicht gedacht habe.
Vielen Dank
Hallo Neville. Ja, in Anbetracht Ihrer Antwort und w01f scheint es, als ob Lösung 1 der Weg für mich ist; Ich werde jetzt einen Blick auf Ihren Link werfen, vielen Dank für Ihre Zeit – SivaDashq