Hallo,
in meiner Tabelle habe ich u.A. 3 Spalten:
Zahlungsart -> [Barzahler, Rechnungszahler]
(heißt: Wert kann entweder Barzahler o. Rechungszahler sein
Zahlungsintervall -> [Wöchentlich,Monatlich,Monatsanfang,Monatsende,null]
Zahlungszeitpunkt -> [Monatsanfang,Monatsende,null]
Ich speichere hier momentar als VARCHAR
Die 3 Spalten hängern wie folgt miteinander zusammen:
Zahlungsart-> Zahlungsintervall-> Zahlungszeitpunkt
Rechnungszahler-> null-> null
Barzahler-> Wöchentlich-> null
Barzahler-> Monatlich -> [Monatsanfang,Monatsende]
Barzahler-> 2-Monatlich-> [Monatsanfang,Monatsende]
Barzahler-> 3-Monatlich-> [Monatsanfang, Monatsende]
So wie in der Tabelle speicher ich die Daten auch in meine Kundentabelle
(Bei [Monatsanfang,Monatsende] dann halt entweder Monatsanfang oder Monatsende)
Jetzt frage ich mich ob ich das so lassen soll, oder ob ich es villeicht lieber abändern sollte und weshalb.
Meine Überlegung:
Hinsichtlich der Art der Speicherung könnte man ich statt Zahlungsart beispielsweise Rechnungszahler nehmen und dann über den Datentyp BOOLEAN einfach nur true oder false speichern. Bei Zahlungsintervall könnte ich zB INT nehmen (1 für Wöchentlich, 2 für Monatlich etc). Bei Zahlungszeitpunkt würde sich dann wieder BOOLEAN anbieten.
Vorteil wäre dann hier wohl, dass ich weniger Fehleranfällig wäre, aber sonst ? Gäbe es da noch einen Vorteil ? Wie würdet Ihr das handhaben ? Zusätliche Tabelle ?
Zusätzlich habe ich noch ähnliche Entweder-Oder Attribute. So habe ich beispielsweise die Attribute Kreis (INT) und Polygon (VARCHAR). Der Kunde kann entweder einen Kreis oder einen Polygon haben. Wenn der Kunde einen Kreis besitzt, dann kann dieser unterschiedliche Werte einnehmen (2 , 3 .... 200 ....). Zusätzlich wird Polygon dann auf null gesetzt. Wenn der Kunde einen Polygon hat, wird halt der Kreis auf null gesetzt.
Auch hier die Frage ? Würdet ihr das ähnlich machen ? Falls nein ? Warum nicht ?
Meine Tabelle ist in etwa wie folgt aufgebaut
KnId -> Nname ->Vname -> Straße -> Stadt -> Radius -> Polygon ->Zahlungsart -> Zahlungsintervall -> Zahlungszeitpunkt
(Gibt zwar noch mehr Spalten, aber die sind nicht von Bedeutung, da sie ähnlich wie Nname und Vname keine Abhängigkeiten untereinander haben)
Ich bedanke mich! =)
in meiner Tabelle habe ich u.A. 3 Spalten:
Zahlungsart -> [Barzahler, Rechnungszahler]
(heißt: Wert kann entweder Barzahler o. Rechungszahler sein
Zahlungsintervall -> [Wöchentlich,Monatlich,Monatsanfang,Monatsende,null]
Zahlungszeitpunkt -> [Monatsanfang,Monatsende,null]
Ich speichere hier momentar als VARCHAR
Die 3 Spalten hängern wie folgt miteinander zusammen:
Zahlungsart-> Zahlungsintervall-> Zahlungszeitpunkt
Rechnungszahler-> null-> null
Barzahler-> Wöchentlich-> null
Barzahler-> Monatlich -> [Monatsanfang,Monatsende]
Barzahler-> 2-Monatlich-> [Monatsanfang,Monatsende]
Barzahler-> 3-Monatlich-> [Monatsanfang, Monatsende]
So wie in der Tabelle speicher ich die Daten auch in meine Kundentabelle
(Bei [Monatsanfang,Monatsende] dann halt entweder Monatsanfang oder Monatsende)
Jetzt frage ich mich ob ich das so lassen soll, oder ob ich es villeicht lieber abändern sollte und weshalb.
Meine Überlegung:
Hinsichtlich der Art der Speicherung könnte man ich statt Zahlungsart beispielsweise Rechnungszahler nehmen und dann über den Datentyp BOOLEAN einfach nur true oder false speichern. Bei Zahlungsintervall könnte ich zB INT nehmen (1 für Wöchentlich, 2 für Monatlich etc). Bei Zahlungszeitpunkt würde sich dann wieder BOOLEAN anbieten.
Vorteil wäre dann hier wohl, dass ich weniger Fehleranfällig wäre, aber sonst ? Gäbe es da noch einen Vorteil ? Wie würdet Ihr das handhaben ? Zusätliche Tabelle ?
Zusätzlich habe ich noch ähnliche Entweder-Oder Attribute. So habe ich beispielsweise die Attribute Kreis (INT) und Polygon (VARCHAR). Der Kunde kann entweder einen Kreis oder einen Polygon haben. Wenn der Kunde einen Kreis besitzt, dann kann dieser unterschiedliche Werte einnehmen (2 , 3 .... 200 ....). Zusätzlich wird Polygon dann auf null gesetzt. Wenn der Kunde einen Polygon hat, wird halt der Kreis auf null gesetzt.
Auch hier die Frage ? Würdet ihr das ähnlich machen ? Falls nein ? Warum nicht ?
Meine Tabelle ist in etwa wie folgt aufgebaut
KnId -> Nname ->Vname -> Straße -> Stadt -> Radius -> Polygon ->Zahlungsart -> Zahlungsintervall -> Zahlungszeitpunkt
(Gibt zwar noch mehr Spalten, aber die sind nicht von Bedeutung, da sie ähnlich wie Nname und Vname keine Abhängigkeiten untereinander haben)
Ich bedanke mich! =)