AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Auf ein Attribut doppelt zugreifen?
Thema durchsuchen
Ansicht
Themen-Optionen

Auf ein Attribut doppelt zugreifen?

Ein Thema von AlexII · begonnen am 24. Nov 2012 · letzter Beitrag vom 24. Nov 2012
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Auf ein Attribut doppelt zugreifen?

  Alt 24. Nov 2012, 17:01
Aber wenn ich die Attribute Vor- u. Nachname in der Tabelle "autor" und "entleiher" habe, hab ich ne Redundanz. Was mach ich da nun...?
autor_vorname, autor_nachname, ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Auf ein Attribut doppelt zugreifen?

  Alt 24. Nov 2012, 17:14
Aber wenn ich die Attribute Vor- u. Nachname in der Tabelle "autor" und "entleiher" habe, hab ich ne Redundanz. Was mach ich da nun...?
autor_vorname, autor_nachname, ...
Was meinst du genau?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Auf ein Attribut doppelt zugreifen?

  Alt 24. Nov 2012, 17:43
Also wenn ich richtig lag:

Autor ist Autor und Entleiher ist Entleiher.
Jede Tabelle darf einen Vornamen und Nachnamen verwalten.
Das würde ich nicht weiter normalisieren.

Wenn aber ein Autor auch ein Entleiher sein kann (also die gleiche Person gemeint ist), dann würde ich eine Tabelle "Personen" einführen, die die gemeinsamen Daten verwaltet.
Einen Bezug gibt es dann über die PersonenId.
Die Autoren- und Entleihertabellen können ja dann zusätzliche Felder einführen.

Wichtig wäre im Sinne einer Normalisierung, dass nicht in mehreren Tabellen die SELBEN Dinge beschrieben werden.
Gleichnamige Eigenschaften sehe ich nicht als Problem.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.202 Beiträge
 
Delphi 12 Athens
 
#4

AW: Auf ein Attribut doppelt zugreifen?

  Alt 24. Nov 2012, 17:54
Zitat:
autor_vorname, autor_nachname, ...
Was meinst du genau?
Siehe mein Post:

xname = verleiher_vorname
aname = autor_vorname

Und das Selbe nochmal für *_nachname.


Und was die Anderen auch noch meinten:
Warum hast du denn Anrede, Vorwahl, eMail und Telefon nicht auch in eigene Tabellen ausgelager?
bzw. Andersrum: Man kann auch eine Tabelle Person habne, wo sowas wie Anrede, Titel, Vorname, Nachname drinsteht, was ja praktisch auf Autor und Verleiher zutrifft.
So hast du "eine" Tabelle für Personen, was auch die globale Suche vereinfacht. Suche jetzt mal nach einer "Person", von der du Vor-/Nachname kennst, aber nicht weißt was sie ist. Du müßtest also 2 mindestens 4 Tabellen durchsuchen und dann auch noch jeden Bestandteil wo anders und die Zusammenhänge dann über 2 Haupttabelle verbinden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Auf ein Attribut doppelt zugreifen?

  Alt 24. Nov 2012, 18:40

xname = verleiher_vorname
aname = autor_vorname

Und das Selbe nochmal für *_nachname.
Du meinst in der Tabelle "nachname"-> nachname1 und nachname2, sowie in der Tabelle "vorname"-> vorname1, vorname2?

Man kann auch eine Tabelle Person haben, wo sowas wie Anrede, Titel, Vorname, Nachname drinsteht, was ja praktisch auf Autor und Verleiher zutrifft.
Aber dann haben alle Autoren leere E-Mails, Telefon usw... das darf mach doch nicht zulassen, oder?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.202 Beiträge
 
Delphi 12 Athens
 
#6

AW: Auf ein Attribut doppelt zugreifen?

  Alt 24. Nov 2012, 22:56
Du meinst in der Tabelle "nachname"-> nachname1 und nachname2, sowie in der Tabelle "vorname"-> vorname1, vorname2?
Jupp.
Du holst aus den Tabellen "vorname" und "nachname" für beide Personen raus und benennst sie im SELECT um.
(table1.vorname AS vorname1, table1.nachname AS nachname1, table2.vorname AS vorname2, table2.nachname AS nachname2, oder wie auch immer)
Innerhalb deines SQL-Aufrufest kann man über Namespace/Tabellenname/Tabellenalias zwar geziehtl auf "Felder" einer bestimmten Tabelle zugreifen, aber die zurückgegebene "Tabelle" (Result-Tabelle) hat erstmal grudsätzlich keine Namespace/Tabellenname/Tabellenalias mehr drinnen, so daß jedes Feld einen eindeutigen Namen benötigt.
Genauso wie man innerhalb des SQL-Befehls ein Namespace/Tabellenname/Tabellenalias angeben muß, wenn ein Feld nicht eindeutig zuordenbar ist, weil es in mehreren der geladenen Tabellen vorkommt.

Aber dann haben alle Autoren leere E-Mails, Telefon usw... das darf mach doch nicht zulassen, oder?
Und was ist, wenn du von einem Autor doch mal eine E-Mail oder gar seine Telefonnummer hast?
Nja, praktisch gemeinsame Dinge würden in die "Personennamen"-Tabelle reinkommen, also mindestens alles, was zum Namen gehört.
(Vor-, Nachname, Titel, Anrede)
Was ist eigentlich mit zweiten Vornamen und Dergleichen?

Du könntest ja eine Kontaktdaten-Tabelle machen (eMail, Telefon, Adresse, ...) und dann dem Entleiher als NOT NULL zuordnen, sowie den Autor als NULL, fall doch mal Eine dazukommt.
Bzw. Eben die "Personen" zusammen in eine Tabelle mit einer NULL--Referenz auf die Kontakte und von Autor, sowie Entleiher nur eine Referenz auf die Personentabelle.

Ach ja, wie oft kommt es denn vor, daß Bücher gleich heißen?
Die Buchtiteltabelle ist ja praktisch auch unnötig kompliziert, anstatt den Titel direkt in Buch drinnen zu haben.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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