Cheers!
Ich habe vor eine Immobilien-Datenbank zu programmieren, dazu haben ich ein Datenbankdesign entworfen und wollte euch um Anregung, Kritik und Verbesserungsvorschläge bitten.
Ein paar kleine Anmerkungen zu den verwendeten Namen der Datenbankobjekte:
- 'kunden' statt 'kundendaten'
- 'kontakte' statt 'letzterkontakt' (s.a.u.)
- 'objekte_kunden' statt 'rel_kundenobjekte', also 1.) die zentrale Tabelle ('objekte') zuerst und 2.) den Unterstrich als Kennzeichner einer Relationentabelle nutzen (Klarstellung: So wuerde ich es machen, das bleibt natuerlich Geschmackssache.)
- 'o_ID' statt 'oID' (und weitere), also den Unterstrich auf Datenfeldebene "augenschonend" als Trenner zwischen Datenfeldpraefix und Datenfeldbezeichnung
- 'o_HatKeller' statt 'oKeller', 'o_IstMoebliert' statt 'oMoebliert', 'o_RaucherErlaubt' statt 'oRaucher' u.s.w. (Alles unter der Annahme, dass es sich um "Ja/Nein"-Felder handelt)
- 'ot_oID' statt 'oID' (in der Tabelle 'objekttypen'), 'ok_ID' statt 'iID' (Primaerschluessel der Tabelle 'objekte_kunden'/'rel_Kundenobjekte'), 'ok_oID' statt 'oID' (ebenfalls in der genannten Tabelle) u.s.w.
Vorteil: datenbankweit eindeutige Datenfeldnamen, was u.a. das JOINen erleichtert
Ein paar kleine Anmerkungen zum Design:
- eventuell die ersten Datenfelder immer 'tabelle_ID', 'tabelle_angelegt', 'tabelle_geaendert', 'tabelle_benutzername' (der Nutzer, der auf die DB zugreift), 'tabelle_besitzer' ('tabelle_b_ID' siehe auch naechsten Absatz) bezeichnen
- die "klassischen" Tabellen 'sitzungen', 'benutzer' und 'rechte' fehlen (implementieren Identifikation, Authentifikation und Autorisierung) - das _koennte_ fruehzeitig hinzugebaut werden
- darauf aufbauend koennten alle Datensaetze Besitzer erhalten (wobei sich der Besitz aendern koennte in Abhaengigkeit der letzten Aenderung (auch fuer Zwecke der Historisierung))
- weitere "Nachschlagtabellen" da, wo anscheinend auf weitere Entitaeten verwiesen wird: 'o_Heizungsart', 'o_Objektzustand', 'k_kundentyp' und weitere
- 'kontakte', weil in der genannten Tabelle vermutlich alle Kontakte gespeichert werden sollen? (Sonst waere die Existenzberechtigung der genannten Tabelle unklar)
- statt der Tabellen 'dokumente' und 'objektbilder' nur eine Tabelle 'dateien' nutzen?
Gruss,
Lude
--
"Was Du heute kannst besorgen, das verschiebe nie auf morgen."
"Was Du heute kannst besorgen, das verschiebe nie auf morgen."