Auswahloptionen in SQL-DBs realisieren

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

Wenn eine Wohnung bestimmte Auswahloptionen hat. Z.B. Küche, Internet, TV, etc. Wie wäre das effizient in einer Relationalen Datenbank zu realisieren (gemeint ist das Datenbankdiagramm)?
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

meego hat geschrieben:Wenn eine Wohnung bestimmte Auswahloptionen hat. Z.B. Küche, Internet, TV, etc. Wie wäre das effizient in einer Relationalen Datenbank zu realisieren (gemeint ist das Datenbankdiagramm)?
3 Tabellen

Code: Alles auswählen

Wohnung
ID    Beschreibung    Ort    ...

Option
ID    Beschreibung

Wohnung_Option
Wohnung_ID    Option_ID
In Wohnung_Option sind dann nur Einträge für die jeweils vorhandenen Optionen einer Wohnung enthalten. Um dann beispielsweise eine Wohnung mit Küche zu finden brauchst du dir aus der Option-Tabelle nur die ID für den Eintrag Küche holen und in Wohnung_Option alle Wohnung_ID zu ermitteln bei denen die Option_ID passt.

Natürlich könntest du auch der Wohnungs-Tabelle Zusatzfelder für alle Optionen geben, aber das ist äußerst unflexibel.
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

Danke. Was meinst du mit unflexibel? Viel ressourcenhungriger?
BlackJack

@meego: Lässt sich nicht so leicht ändern wenn Optionen hinzukommen oder wegfallen und man kann keinen so generischen Code schreiben sondern muss jede Option auch im Code berücksichtigen.
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

@blackjack: Okay vor allem letzteres ist ein gewichtiges Argument. Was ist eigentlich mit Fremdsprachen? Kann man die auch noch nachträglich berücksichtigen oder muss ich schon jetzt daran denken?
BlackJack

@meego: Das kann man auch nachträglich machen. Wie aufwändig das wird kommt in der Regel darauf an wie sehr man Texte mit dem Code verwebt, also so ein bisschen das übliche das man die Programmlogik von der Präsentation gut trennt. Je nach dem welches Rahmenwerk man für die Webanwendung benutzt gibt es dort für ”i18n” auch schon Unterstützung. Als unabhängige Bibliothek macht Babel einen ganz netten Eindruck.
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

@blackjack: Werde ich mir merken, wenn es dann um Darstellung von Preisen geht. Gibt's eigentlich fertige Tabellen für Geimeinden/Kantone/Land?
BlackJack

@meego: Kantone klingt jetzt irgendwie nach Schweiz‽ Musst mal nach OpenData oder OpenGovernment als Stichworte schauen zusätzlich zu den eigentlichen Suchbegriffen die Dich interessieren. Wikipedia ist bei so etwas auch eine Quelle oder gibt eventuell Quellen an. Wobei man bei solchen Daten auch immer darauf achten muss unter welcher Lizenz die stehen. Openstreetmap würde mir auch noch einfallen. Da kann man in der Regel auch noch die Verwaltungsgrenzen als Geodaten herausbekommen. (Habe ich mal für Berliner Bezirke gemacht.)
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

@blackjack Ja, die liebe Schweiz. :) Ich meine (noch) etwas Simpleres z.B. Postleitzahlen & Ländercodes. Hier habe ich mal was Kleines für Länder gefunden:
http://www.teamarbyte.de/mysql-laender.html
BlackJack

@meego: Na für Länder müsste man eigentlich auch Babel schon hernehmen können. Ansonsten gibt es die ISO-Ländercodes sicher auch in Wikipedia. Bei Postleitzahlen ist mir dann aber nicht klar was Du damit willst, also worauf sollen die abgebildet werden? Das Thema Postleitzahlen ist auch nicht wirklich etwas simples. Da habe ich mich bei dem Projekt mit den Berliner Bezirken nämlich auch mit beschäftigt.
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

@blackjack: Ach so, mit Babel muss ich gar nicht zwingend eine Ländertabelle erstellen meinst du? Andererseits wäre es vielleicht hilfreich Nutzer nach Ländern auszulesen. In Desktopbürosoftware sieht man es oft, dass wenn man eine PLZ eingibt, dann automatisch die Ortschaft erscheint (z.B. in meiner Buchhaltungssoftware). Keine Ahnung ob die das von der Schweizer Post lizenzieren. Die ändern sich auch von Zeit zu Zeit mal. Die PLZ Stellen sind auch häufig Länderabhängig (bei uns 4 Stellen).
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

Sollte man das Passwort-Feld auch direkt in die Mitgliedertabelle mit den Benutzerkonten schreiben?
Bild
Sirius3
User
Beiträge: 18332
Registriert: Sonntag 21. Oktober 2012, 17:20

@meego: hast Du Dich schon mit dem Thema auseinander gesetzt, wie man Passwörter sicher in einer Datenbank ablegt?
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

meego hat geschrieben:Sollte man das Passwort-Feld auch direkt in die Mitgliedertabelle mit den Benutzerkonten schreiben?
Das kann man machen, aber natürlich schreibt man niemals das Passwort selber in die Datenbank sondern nur einen Hash-Wert.
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

@Sirus3: Nein. Habe aber etwas gefunden: http://helmbold.de/artikel/passwoerter-sicher-speichern

@/me: Welcher Datentyp muss da verwendet werden?

P.S.: Wäre das nicht auch für Namen empfehlenswert?
BlackJack

@meego: Apropos Datentyp: BINARY für das Geschlecht‽
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

meego hat geschrieben:http://helmbold.de/artikel/passwoerter-sicher-speichern
@/me: Welcher Datentyp muss da verwendet werden?
Wenn man den von dir zitierten Artikel liest sieht das doch schwer nach einem Textfeld aus, oder?
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

BlackJack hat geschrieben:@meego: Apropos Datentyp: BINARY für das Geschlecht‽
Ich dachte es sei ein Binärwert. Offenbar eher für Bilder. Also Integer? 0 = Fräulein, 1 = Männlein?
Wenn man den von dir zitierten Artikel liest sieht das doch schwer nach einem Textfeld aus, oder?
Jup, sieht nach einem String aus. :mrgreen:
Benutzeravatar
pillmuncher
User
Beiträge: 1532
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

meego hat geschrieben:
BlackJack hat geschrieben:@meego: Apropos Datentyp: BINARY für das Geschlecht‽
Ich dachte es sei ein Binärwert. Offenbar eher für Bilder. Also Integer? 0 = Fräulein, 1 = Männlein?
hm... zum Einstieg empfehle ich:
https://www.google.de/search?q=conchita+wurst
https://www.google.de/search?q=jayne+county
https://www.google.de/search?q=candy+darling
https://www.google.de/search?q=holly+woodlawn
https://www.google.de/search?q=jackie+curtis

Und der passende Song dazu:
https://www.youtube.com/watch?v=RsVLIiI8Vfo
In specifications, Murphy's Law supersedes Ohm's.
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

meego hat geschrieben:Ich dachte es sei ein Binärwert. Offenbar eher für Bilder. Also Integer? 0 = Fräulein, 1 = Männlein?
m = "männlich" oder "mehrere"
w = "weiblich" oder "weiß nicht"
Antworten