AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbankschema - Tabellenverknüpfung

Datenbankschema - Tabellenverknüpfung

Ein Thema von NoGAD · begonnen am 17. Mär 2021 · letzter Beitrag vom 19. Mär 2021
Antwort Antwort
Seite 2 von 2     12
Delphi.Narium

Registriert seit: 27. Nov 2017
1.854 Beiträge
 
Delphi 7 Professional
 
#11

AW: Datenbankschema - Tabellenverknüpfung

  Alt 17. Mär 2021, 16:11
Was ich gerade noch gefunden habe: Die ISBN 10 gibt es nur zu den Büchern, deren ISBN 13 mit 978 beginnt. Zu den Büchern mit 'ner mit 979 beginnenden ISBN 13, gibt es keine ISBN 10. Von daher sollte man wohl eher auf die ISBN 10 verzichten.
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Erfurt
199 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Datenbankschema - Tabellenverknüpfung

  Alt 17. Mär 2021, 18:35
Hallo und danke für die vielen Antworten.

Ganz zu Beginn erst einmal eine Klarstellung: Das Programm ist keines, welches ich für eine Bibliothek erstellen möchte. Es ist ein kleines Lernprojekt für mich und weiterhin eine Anwendung für meinen Vati. Er hat gerne Ordnung.


Die ISBN10 benötige ich, weil viele Bücher im Bestand meines Vatis noch aus DDR-Zeiten sind. Damals gab es keine ISBN13.
Außerdem habe ich die 42 als Größe gewählt, weil das doch die Antwort auf ALLES ist..
Spaß beiseite, ich war mir tatsächlich nicht sicher, wie die ISBN von jemandem eingegeben wird und habe daher das Feld entsprechend ausgedehnt.

Ein Buch kann auch mehrere Autoren haben
Dafür habe ich eigentlich keine extra Abbildung vorgesehen. In so einem Fall wäre dann z.B. ein Autorenduo auch als solches im Feld einzutragen. (Douglas Preston & Liconln Child aká Preston & Child fallen mir hier als Beispiel ein, die schreiben auch als Einzelautoren ihre Bücher)

Wenn man das Programm aber mal ausbauen will, um damit auch CDs, DVDs, VHS-Vidokassetten
Eine gute Idee, die verfolge ich dann später weiter

Warum lagerst du die Description aus? Thumbnail kann ich ja ggf. noch verstehen.

borowto und borowdate?
Für die Verwaltung der Ausleihen würde ich eigene Tabellen verwenden.
Die Description ist ja ein Memo-Feld. Ich hoffte, dass mit der ABSDatabase somit eine Trennung und durch Komprimierung, ein Geschwindigkeitsvorteil erreicht werden kann.

Die Ausleihe ist pro Buch, daher sollte die doch auch dort zu finden sein. Eine extra Tabelle, dachte ich, macht hier wenig Sinn.


LG Mathias
Mathias
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.854 Beiträge
 
Delphi 7 Professional
 
#13

AW: Datenbankschema - Tabellenverknüpfung

  Alt 18. Mär 2021, 11:23
Hallo und danke für die vielen Antworten.

Ganz zu Beginn erst einmal eine Klarstellung: Das Programm ist keines, welches ich für eine Bibliothek erstellen möchte. Es ist ein kleines Lernprojekt für mich und weiterhin eine Anwendung für meinen Vati. Er hat gerne Ordnung.


Die ISBN10 benötige ich, weil viele Bücher im Bestand meines Vatis noch aus DDR-Zeiten sind. Damals gab es keine ISBN13.
Bezüglich ISBN13, die kann man aus der ISBN10 berechnen.

ISBN13 ist gleich 978 plus die ersten 9 Ziffern der ISBN10 plus neuberechnete Prüfziffer. Das gilt auch für die ISBN10 aus Zeiten, zu denen es noch keine ISBN13 gab.

Bezüglich alter Buchbestand: Das ISBN13-Feld sollte not null sein, damit man keine Bücher ohne ISBN erfassen kann, derweil die sind im Buchbestand ja (vermutlich / eventuell) auch vorhanden

Da not null und keine ISBN natürlich nicht funktioniert, gibt es auch dafür einen Lösungsansatz: Im Nummernbereich der ISBN13 gibt es nichtvergebene Gruppennummern, z. B. 978650. Die könnte man dann gut für solche Bücher verwenden. Das erste derartige Buch bekommt dann die ISBN13 9786500000016, das zweite 9786500000023, ... Damit kann man dann ggfls. per SQL auch mal genau alle diese Bücher als Report ... ausgeben lassen, ebenso, wie man über die Gruppennummer alle Bücher aus bestimmten Ländern ausgeben lassen kann oder alle Bücher eines Verlages, ... Dazu werden dann die Informationen aus der "Verlagstabelle" nicht mal benötigt. Strenggenommen ist ein Fremdschlüssel auf den Verlag in der Tabelle der Buchtitel eine Redundanz (und damit bei einer vollständigen Normalisierung des Datenmodels nicht zulässig). Man könnte diesen Verweis auch über die ISBN13 herstellen (was allerding eher etwas überkompliziert wäre, da man dazu dann auch ein vollständiges Gruppennummern- bzw. ein vollständiges Verlagsverzeichnis benötigen würde).

Man könnte also bei der Eingabe der ISBN prüfen, ob diese 10-stellig ist und dann daraus sofort die ISBN13 berechnen. Da es ja ein Lernprojekt ist, halte ich diese Umsetzung für zwingend. Und das Argument: Ist mir zu schwer gilt nicht, derweil passende Lösungsansätze sind hier im Forum bereits zu finden
Zitat:
Das Programm ist keines, welches ich für eine Bibliothek erstellen möchte. Es ist ein kleines Lernprojekt für mich ...
Das war mir schon klar und genau deshalb bestehe ich auf einer möglichst perfekten Umsetzung, die erhöht halt den Lerneffekt und Zeitaufwand und "Kosten" sind dabei ja vernachlässigbar, weil keiner über "Kostenexplosion" oder "warum dauert das denn solange" ... schimpfen kann

Und nein: Das meine ich jetzt nicht wirklich so, aber eventuell hast Du ja Spass daran, das eine oder andere doch umzusetzen
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.696 Beiträge
 
Delphi 6 Enterprise
 
#14

AW: Datenbankschema - Tabellenverknüpfung

  Alt 18. Mär 2021, 14:11
Die Ausleihe ist pro Buch, daher sollte die doch auch dort zu finden sein. Eine extra Tabelle, dachte ich, macht hier wenig Sinn.
Für deinen Anwendungsfall hast du da sicher recht, ich dachte auch es ginge in Richtung Bibliotheksanwendung und da will man ja auch eine Historie haben, wer wann welches Buch geliehen hatte und wie lange.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Erfurt
199 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Datenbankschema - Tabellenverknüpfung

  Alt 19. Mär 2021, 11:49
Das war mir schon klar und genau deshalb bestehe ich auf einer möglichst perfekten Umsetzung, die erhöht halt den Lerneffekt und Zeitaufwand und "Kosten" sind dabei ja vernachlässigbar, weil keiner über "Kostenexplosion" oder "warum dauert das denn solange" ... schimpfen kann

Und nein: Das meine ich jetzt nicht wirklich so, aber eventuell hast Du ja Spass daran, das eine oder andere doch umzusetzen
Ha. Da hast Du mich erwischt!

Ich werde daran denken

Momentan bin ich erst einmal bei der Datenbankerstellung und der vernünftigen Implementierung. Wenn das klappt, kümmere ich mich um solche Dinge

LG Mathias
Mathias
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 02:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf