Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   C# m:n Beziehung oder Redundanz? (https://www.delphipraxis.net/113399-m-n-beziehung-oder-redundanz.html)

EConvertError 7. Mai 2008 11:40

Datenbank: Access/MS SQL Server 2005 Express • Zugriff über: ADO.NET

m:n Beziehung oder Redundanz?
 
Hallo!

Ich versuche mich gerade an einem kleinen Adressbuch, um ein wenig in ADO.NET mit WPF hineinzuschnuppern. Meine Frage bezieht sich jedoch auf das Datenbankdesign (deswegen ist das DBMS, die Sprache und das Framework nebensächlich). Ich möchte nämlich die Kontakte im Adressbuch mit Stichwörtern, Tags versehen: z.B. geschäftlich, privat, Freunde, etc.

Jedem Kontakt soll man mehrere Stichwörter zuordnen können, was dann zu einer m:n Beziehung führen würde (sofern man die Stichwörter in einer eigenen Tabelle hat). Jetzt besteht aber die Stichwörter-Tabelle genau aus 2 Spalten: ID (PK), Stichwort. Damit es sich "ein wenig lohnt" habe ich noch "Bemerkung/Beschreibung" hinzugefügt.

In meinem Buch über Datenbankprogrammierung steht zum Thema Normalisierung "Benützen Sie Ihren Hausverstand". :mrgreen:

An sich klar, aber ab wann lohnt sich jetzt ungefähr so eine m:n Beziehung und wann sollte man eher Redundanz in Kauf nehmen? Wann ist der administrative Aufwand, das verlinken der Tabellen etc. zu hoch, etc.

Gibt es da eine Faustregel?

Ich könnte ja auch einfach die Stichwörter in eine einzige Spalte werfen und per Volltextsuche das gleiche Ergebnis erzielen (die Stichwörter dienen letztendlich zur Suche...). Oder eine ganz andere Idee?

Vielen Dank,
Andreas

mkinzler 7. Mai 2008 11:42

Re: m:n Beziehung oder Redundanz?
 
Wenn du es sauber machen willst als eigene Relation mit einer n:m Beziehung

mikhal 7. Mai 2008 11:48

Re: m:n Beziehung oder Redundanz?
 
Gerade bei Stichwort bekommst du ein Problem bei der Schreibweise von Stichwörtern:
Delphin - Delfin, Schiffahrt - Schifffahrt...

Hast du eine Treffertabelle für deine Stichwörter, kommt nur noch eine Schreibweise in Frage und kann das Stichwort mit geringem Aufwand sogar an die neue Rechtschreibung angepaßt werden.

Grüße
Mikhal

Phoenix 7. Mai 2008 11:49

Re: m:n Beziehung oder Redundanz?
 
Zum Thema 'Hausverstand':

Wird es - vielleicht irgendwann mal - nötig sein, ein Stichwort zu ändern oder zu löschen? Also global?
Denn dann ist der (programmiertechnische und der rechnerische) Aufwand nämlich recht hoch: Du musst dann JEDEN einzelnen Datensatz anpacken, gucken ob er das Stichwort enthält, und die Änderung / Entfernung für jeden einzelnen Datensatz durchführen.

Wenn Du es richtig (^^) machst, ist das nur ein einzelnes Delete oder Update-Statement.

EConvertError 8. Mai 2008 08:53

Re: m:n Beziehung oder Redundanz?
 
Verstehe. Somit ist klar, dass die saubere m:n Beziehung zum Zug kommt.

Danke für eure Hilfe,
Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz