AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FreePascal DB-Modell für eine Software
Thema durchsuchen
Ansicht
Themen-Optionen

DB-Modell für eine Software

Ein Thema von AlexII · begonnen am 22. Dez 2014 · letzter Beitrag vom 23. Dez 2014
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#21

AW: DB-Modell für eine Software

  Alt 22. Dez 2014, 21:01
Ein Constraint definiert eine logische Regel, die hier in Deinem Fall die Fremdschlüsselbeziehung definiert (foreign key constraint)
Physikalisch reichen auch Deine "Felder", sie ermöglichen technisch die Verknüpfung, aber keine Prüfung durch den Server.
Gruß, Jo

Geändert von jobo (22. Dez 2014 um 21:04 Uhr)
  Mit Zitat antworten Zitat
AlexII

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

AW: DB-Modell für eine Software

  Alt 22. Dez 2014, 21:04
Ein Constraint definiert eine logische Regel, die hier in Deinem Fall die Fremdschlüsselbeziehung definiert (foreign key constraint)
Physikalisch reichen auch Deine "Felder", sie ermöglichen technisch die Verknüpfung, aber keine Prüfung durch den Server.
Und was prüft der Server?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#23

AW: DB-Modell für eine Software

  Alt 22. Dez 2014, 21:05
Ja, durch die Fremdschlüssel (fk_person_id, fk_tagungs_id)
Und die befinden sich in der tbl_vt? Dann können die id_vtperson und id_vttagung weg? Und was hat dann Persau gemeint?
Um alle Klarheiten zu beseitigen, unten eine Grafik, schnell mal mit Access zusammengewurstelt. Die Tabelle besitzt einen PrimaryKey (PK) über zwei Felder. Das schützt einerseits davor, dieselbe Kombination mehr als einmal eingeben zu können und zweitens wird die Kombination Person/Tagung dadurch indiziert und so schneller gefunden. Die angehängte Zip-Datei enthält das Access-Beispiel.
Miniaturansicht angehängter Grafiken
db_alexii.jpg  
Angehängte Dateien
Dateityp: zip AlexII.zip (16,3 KB, 4x aufgerufen)

Geändert von Perlsau (22. Dez 2014 um 21:09 Uhr) Grund: Ergänzungen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#24

AW: DB-Modell für eine Software

  Alt 22. Dez 2014, 21:06
Zitat:
Und was prüft der Server?
Im Minimalfall, ob der referenzierte Datensatz existiert.
Markus Kinzler
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#25

AW: DB-Modell für eine Software

  Alt 22. Dez 2014, 21:11
Und was prüft der Server?
Der Server prüft ob die Regel eingehalten wurde.
Also wenn Du einen Foreign Key Constraint definierst, prüft der Server die Eingabewerte und erzeugt einen Fehler, wenn Werte eingetragen werden, die die Regel verletzen.
Das ist das Wesen (ein Teil)von relationalen Datenbanken.
Der Server garantiert die Einhaltung bestimmter Regeln. Deshalb kann man am Ende auf solchen Teilen eine Kontoverwaltung oder so machen und nachts trotzdem ruhig schlafen.
Gruß, Jo
  Mit Zitat antworten Zitat
AlexII

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

AW: DB-Modell für eine Software

  Alt 22. Dez 2014, 21:41
Ja, durch die Fremdschlüssel (fk_person_id, fk_tagungs_id)
Und die befinden sich in der tbl_vt? Dann können die id_vtperson und id_vttagung weg? Und was hat dann Persau gemeint?
Um alle Klarheiten zu beseitigen, unten eine Grafik, schnell mal mit Access zusammengewurstelt.
Vielen, vielen Dank!!!
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
AlexII

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

AW: DB-Modell für eine Software

  Alt 22. Dez 2014, 21:43
Grundsätzlch ja, aber wozu benötigst du id_vtPerson und id_vtTagung?
Jah... habe eben in Ruhe bisschen nachgedacht, stimmt... drei IDs in einer Tabelle ist ja voller Quatsch. Ich meine IDs in dem Sinne wie ich es meinte, mit Autoincrement usw.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#28

AW: DB-Modell für eine Software

  Alt 22. Dez 2014, 21:46
Auf dieses Feld kannst Du eigentlich auch verzichten und die beiden anderen Felder als zusammengesetzten Primärschlüssel definieren, dann kann sich niemand mehrmals für sie selbe Veranstaltung anmelden.
Markus Kinzler
  Mit Zitat antworten Zitat
AlexII

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

AW: DB-Modell für eine Software

  Alt 22. Dez 2014, 21:49
Auf dieses Feld kannst Du eigentlich auch verzichten und die beiden anderen Felder als zusammengesetzten Primärschlüssel definieren, dann kann sich niemand mehrmals für sie selbe Veranstaltung anmelden.
Ok... muss nur rausfinden wie.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#30

AW: DB-Modell für eine Software

  Alt 22. Dez 2014, 21:58
SQL-Code:
CREATE TABLE TagungsTeilnehmer(
  Person Integer,
  Tagung Integer,
  PRIMARY KEY( Person, Tagung),
  FOREIGN KEY( Person) REFERENCES Person ( id_person),
  FOREIGN KEY( Tagung) REFERENCES Tagung (id_tagung));
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    


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 00:19 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