Ich habe Interesse an mehrere Werte in einer einzigen Spalte zu speichern, anstatt die traditionellen many-to-many verwenden Tabelle:Wie durch Kraft der Schlüsselwerte zu erhöhen, zwei
class Beer
include DataMapper::Resource
property :id, Serial
property :name, String
property :containers, Integer # use bit arithmetic to store multiple values
validates_presence_of :name, :containers
end
class Container
include DataMapper::Resource
property :id, Serial # increment in powers of two?
property :name, String
property :volume, Integer
validates_presence_of :name, :volume
end
Container:
ID Name Volume Unit
1 Growler 64 oz
2 Cowler 32 oz
4 Bomber 750 mL
8 Six-fifty 650 mL
16 4 pack 64 oz
32 6 pack 72 oz
Beers:
ID Name Containers
1 LSD 72
2 Düo 16
gibt es eine einfache Möglichkeit, eine DataMapper Ressource zu erhöhen serielle Werte in Potenzen zu konfigurieren o f 2? Ich gehe davon aus, dass der Verein eine Herausforderung sein wird.
Welchen Vorteil könnte das haben? –
Eine weniger zu wartende Tabelle. Bitweise Abfragen sind schnell und leistungsstark. Das heißt, ich brauche wahrscheinlich eine Hilfsfunktion in der Ansicht, um 'Container' in seine String-Darstellung zu konvertieren. – craig
Alles über das Einrichten für einen Fehler. Tu das nicht. Verwenden Sie fortlaufende Nummern und eine geeignete relationale Tabelle. Sie gehen hier auf die schlimmste Weise gegen den Strom und es wird ein ständiger Kampf sein, die Dinge auf Kurs zu halten. Denken Sie daran, Postgres hat eine 'ARRAY'-Spalte und MySQL und Postgres unterstützen beide' JSON', wenn Sie eine beliebige Datenstruktur benötigen. – tadman