Welche Nachteile oder Vorteile hat eine separate Tabelle gegenüber wenn ich alles in eine Tabelle packe ?
Vorteil: keine Verschwendung von Speicherplatz. Ist aber wohl nur dann relevant, wenn der Anteil der Tab3-Records klein ist gegenüber der Anzahl der Kundenrecords.
Nachteil: erhöhter Verwaltungsaufwand beim Abspeichern.
Beim Lesen würde man das wohl eh über einen JOIN realisieren, der dann faktisch so aussieht, als wären alle Felder in einer Tabelle.
Also, solange das Vorteils-Argument zu vernachlässigen ist, würde ich eine einzige Tabelle nehmen.
Die Checkboxen sind reine Multiple-Choice Bereiche. Ich muss nur den Status der Checkbox speichern, sobald er sich ändert und natürlich auch wieder anzeigen, wenn die Maske aufgerufen wird.
30 Checkboxen lassen sich bequem in einem 32-Bit Integer unterbringen - das wäre die platzsparendste Art. Du hast dann nur ein Feld für diese Checkbox-Gruppe. Für den Zugriff bietet sich dann
TIntegerSet
an.
Delphi-Quellcode:
function IsChecked(FieldData, Index: Integer): Boolean;
begin
Result := Index in TIntegerSet(FieldData);
end;
function SetChecked(FieldData, Index: Integer; Value: Boolean): Integer;
var
iSet: TIntegerSet;
begin
iSet := TIntegerSet(FieldData);
if Value then begin
Include(iSet, Index);
end
else begin
Exclude(iSet, Index);
end;
Result := Integer(iSet);
end;