Sophus
SQL-Guru
- Beiträge
- 135
Hallo Leute,
ein kurzes Szenario, bevor ich meine allgemeine Frage stelle: Ich schreibe eine Anwendung, mit der man so ziemlich alles verwalten kann. Zur Zeit geht es um Briefmarken, Bücher, Comic, Zeitschriften, Filme, Serien, Kontakte (Adressbuch), Videospiele, Münzen, Musik etc. Zunächst hatte ich die Idee, für jede Kategorie eine Datenbank anzulegen. Also, für Bücher, für Filme, für Münzen, für Videospiele etc eine Datenbank. Aber dann fiel mir sofort ein, dass zum Beispiel bei Personen recht schnell Redundanz auftauchen kann. Beispiel, eine Person kann ein Schauspieler sein und auch ein Buchautor und von mir aus auch ein Sänger. Wenn ich also für jede Kategorie eine Datenbank anlegen würde, hätte ich am Ende bestimmte Personen doppelt und dreifach. Also entschied ich mich dazu nur eine Datenbank anzulegen, und dort sozusagen alles (geordnet) reinzustopfen. Das heißt, ich lege eine Tabelle an, in denen erst einmal ganz neutral Personen eingetragen wird. Für diese Eintragung gibt es eine ganz normale Profil-Maske in meiner Software. Das heißt, es werden ganz neutrale Informationen einer Person abverlangt: Geschlecht, Geburtsort, Name, Vorname, Künstlername, Nationalität, Todestag und ein Foto von der Person. Alles Informationen, die nichts mit dem Adressbuch zutun haben. Über die Profil-Maske wird also jede Person zentral und neutral in die Datenbank gelegt. Zunächst weiß die Datenbank also noch nicht, um welche Person es sich handelt, ob das ein Schauspieler, Musiker, Autor oder einfach nur eine Privatperson ist.
Und von dort aus werden über die ID der Personen dann Verknüpfungen zu Bücher, Filme, etc hergestellt. Das bedeutet aber auch, dass in die Person-Tabelle dann auch deine Freunde/Bekannte/Verwandte etc reinkommen, und man dann eine Verknüpfung zur Kontakte/Adressbuch herstellt. Man stelle sich also vor, Schauspieler, Autoren, deine Freunde, deine Verwandten etc sind in der Person-Tabelle vorhanden. Soweit alles super. Nun bin ich reim vom Denken her an ein mögliches Problem gestoßen. Wenn der Anwender meiner Software die Suchmaske öffnet, dort sagen wir mal Peter Mustermann eingibt, dann wird dieser natürlich aufgelistet, wenn die Person in der Datenbank ist. Nun klickt der Anwender in der Liste, in der sämtliche Suchergebnisse gelistet werden, doppelt auf Peter Mustermann. Woher soll jetzt meine Software wissen, dass die Person auch im Adressbuch ist? Anders gefragt, woher soll meine Software wissen, dass es für Peter Mustermann nun die Adressbuch-Maske öffnen soll? Denn genauso gut könnte mein Programm auch die Profil-Maske der Person öffnen, und nicht das Adressbuch. Wir erinnern uns, dass es ja keine Adressbuch-Datenbank gibt, sondern alle Tabellen in einer Datenbank untergebracht wurden. Gäbe es für jede Kategorie eine Datenbank, sähe ich da kein Denk-Problem bei mir.
Ich hoffe, ich konnte meine Sachlage etwas verständlich darstellen. Denn ich habe das Talent mich immer unglücklich und kompliziert auszudrücken.
Gruß
Sophus
ein kurzes Szenario, bevor ich meine allgemeine Frage stelle: Ich schreibe eine Anwendung, mit der man so ziemlich alles verwalten kann. Zur Zeit geht es um Briefmarken, Bücher, Comic, Zeitschriften, Filme, Serien, Kontakte (Adressbuch), Videospiele, Münzen, Musik etc. Zunächst hatte ich die Idee, für jede Kategorie eine Datenbank anzulegen. Also, für Bücher, für Filme, für Münzen, für Videospiele etc eine Datenbank. Aber dann fiel mir sofort ein, dass zum Beispiel bei Personen recht schnell Redundanz auftauchen kann. Beispiel, eine Person kann ein Schauspieler sein und auch ein Buchautor und von mir aus auch ein Sänger. Wenn ich also für jede Kategorie eine Datenbank anlegen würde, hätte ich am Ende bestimmte Personen doppelt und dreifach. Also entschied ich mich dazu nur eine Datenbank anzulegen, und dort sozusagen alles (geordnet) reinzustopfen. Das heißt, ich lege eine Tabelle an, in denen erst einmal ganz neutral Personen eingetragen wird. Für diese Eintragung gibt es eine ganz normale Profil-Maske in meiner Software. Das heißt, es werden ganz neutrale Informationen einer Person abverlangt: Geschlecht, Geburtsort, Name, Vorname, Künstlername, Nationalität, Todestag und ein Foto von der Person. Alles Informationen, die nichts mit dem Adressbuch zutun haben. Über die Profil-Maske wird also jede Person zentral und neutral in die Datenbank gelegt. Zunächst weiß die Datenbank also noch nicht, um welche Person es sich handelt, ob das ein Schauspieler, Musiker, Autor oder einfach nur eine Privatperson ist.
Und von dort aus werden über die ID der Personen dann Verknüpfungen zu Bücher, Filme, etc hergestellt. Das bedeutet aber auch, dass in die Person-Tabelle dann auch deine Freunde/Bekannte/Verwandte etc reinkommen, und man dann eine Verknüpfung zur Kontakte/Adressbuch herstellt. Man stelle sich also vor, Schauspieler, Autoren, deine Freunde, deine Verwandten etc sind in der Person-Tabelle vorhanden. Soweit alles super. Nun bin ich reim vom Denken her an ein mögliches Problem gestoßen. Wenn der Anwender meiner Software die Suchmaske öffnet, dort sagen wir mal Peter Mustermann eingibt, dann wird dieser natürlich aufgelistet, wenn die Person in der Datenbank ist. Nun klickt der Anwender in der Liste, in der sämtliche Suchergebnisse gelistet werden, doppelt auf Peter Mustermann. Woher soll jetzt meine Software wissen, dass die Person auch im Adressbuch ist? Anders gefragt, woher soll meine Software wissen, dass es für Peter Mustermann nun die Adressbuch-Maske öffnen soll? Denn genauso gut könnte mein Programm auch die Profil-Maske der Person öffnen, und nicht das Adressbuch. Wir erinnern uns, dass es ja keine Adressbuch-Datenbank gibt, sondern alle Tabellen in einer Datenbank untergebracht wurden. Gäbe es für jede Kategorie eine Datenbank, sähe ich da kein Denk-Problem bei mir.
Ich hoffe, ich konnte meine Sachlage etwas verständlich darstellen. Denn ich habe das Talent mich immer unglücklich und kompliziert auszudrücken.
Gruß
Sophus
Zuletzt bearbeitet: