Podążając za duchem to pytanie, jaki powinien być idealny sposób na przechowywanie wyrażeń wbaza danych w Delphi? Mam kilka tabel odnośników, które kierują pewną logiką biznesową, więc a) są ściśle powiązane z moim kodem, i b) mogą podlegać zmianom w nowszych wersjach.
W tej chwili robię to, zapisując wartości numeryczne i jawnie ustawiając wartość wyliczeniową.
type TSuit = (Unknown = 4, Heart = 1, Club = 3, Diamond = 2, Spade = 0);
Czy znasz lepszy sposób?
Odpowiedzi:
3 dla odpowiedzi № 1Biorąc pod uwagę model relacyjny, prawdopodobnie powinieneśzapisz wartość wyliczenia w tabeli i utwórz kolejną tabelę, w której przechowywana jest wartość wyliczeniowa + nazwa. Ten ostatni można stworzyć wyłącznie z RTTI.
Tak więc biorąc pod uwagę twój przykład: masz coś w rodzaju Tabeli kart, gdzie Suit jest polem bajtowym z wartościami 0..4. I masz tabelę Suits z 5 rekordami, po jednym dla każdej wartości wyliczeniowej.
Teraz twoje dane są poprawnie normalizowane, a metadane pokazują, że wiesz, co Suit = 2 oznacza (np. Dołącz do tabeli Suits).