Welches Datenmodell würde es Ihnen ermöglichen, bequem nach Büchern zu suchen und diese in Ihrer örtlichen Bibliothek auszuleihen?
Bist du schon einmal in eine Bibliothek gegangen und hast dir ein Buch ausgeliehen? Vielleicht erscheint das in der heutigen Welt des sofortigen Internetwissens und der E-Books altmodisch. Aber ich bin mir sicher, dass es immer noch diesen analogen Teil von dir gibt, der immer noch gerne Bücher riecht, berührt und liest. Oder vielleicht waren Sie gezwungen, eine Bibliothek zu benutzen, wenn Sie im Internet nichts finden konnten! Ja, nicht alles ist online.
Wie würde also ein Datenmodell Bibliotheksbücher und Ausleihen organisieren? Lassen Sie uns direkt in dieses Modell eintauchen und sehen, wie es funktioniert!
Das Datenmodell
Als ich dieses Datenmodell erstellte, hatte ich öffentliche Bibliotheken im Sinn. Es wird davon ausgegangen, dass jede Bibliothek im Netz öffentlicher Bibliotheken dasselbe Modell/System verwendet. Es ist zentralisiert und ermöglicht es den Mitgliedern, die Sammlung jeder Bibliothek im Netzwerk zu durchsuchen. Außerdem können Mitglieder Bücher aus jeder Bibliothek im Netzwerk ausleihen.
Das Bibliotheksdatenmodell besteht aus dreizehn Tabellen, die in zwei Themenbereiche unterteilt sind. Diese Bereiche sind:
Books & Libraries
Members & Loans
Wir gehen jeden Themenbereich separat durch und analysieren alle Details.
Bücher und Bibliotheken
In diesem Themenbereich werden Informationen zu Büchern und Bibliotheken gespeichert. Es besteht aus zehn Tabellen:
author
authorship_role
literature_category
book
book_authorship
book_item
publishing_house
library
city
country
Die erste Tabelle ist der author
Tisch. Es listet alle Autoren (einschließlich ihrer relevanten Details) der Bücher auf, die die Bibliothek in ihrer Sammlung hat. Für jeden Autor haben wir:
id
– Eine eindeutige ID für diesen Autor.author_name
– Der Vorname des Autors.author_surname
– Der Nachname des Autors.date_birth
– Geburtsdatum des Autors.date_death
– Das Todesdatum des Autors.
Die authorship_role
listet alle Rollen auf, die ein Autor haben kann, z. Autor, Co-Autor usw. Diese Tabelle hat die folgenden Attribute:
id
– Eine eindeutige ID für jede Rolle.role_name
– Der Name dieser Rolle, z. "Mitverfasser". Dies ist der alternative Schlüssel der Tabelle.
Die Tabelle literature_category
listet alle Buchkategorien auf, z.B. Thriller, französische Literatur, russischer Realismus, Philosophie usw. Die Tabelle enthält die folgenden Attribute:
id
– Eine eindeutige ID für diese Kategorie.category_name
– Der Name der Kategorie, z. "Geheimnis". Dies ist der alternative Schlüssel der Tabelle.
Als nächstes haben wir das book
Tisch. Diese Tabelle speichert alle relevanten Details zu jedem Titel, den die Bibliothek in ihrer Sammlung hat. Bitte beachten Sie, dass dies nicht die Tabelle ist, die für jedes Buch als Artikel verwendet wird. Dafür verwenden wir eine andere Tabelle, nämlich book_item
Tisch. Das book
Tabelle besteht aus den Attributen:
isbn
– Eine eindeutige ID für jeden Buchtitel, die in der Verlagsbranche die International Standard Book Number (ISBN) ist.book_title
– Der Titel des Buches.literature_category_id
– Referenziert dieliterature_category
Tabelle.publishing_house_id
– Verweist aufpublishing_house
Tabelle.year_published
– Das Jahr, in dem das Buch veröffentlicht wurde.
Die nächste Tabelle in unserem Modell ist book_authorship
Tisch. Es ist eine Schnittpunkttabelle, die mit dem book
, author
und authorship_role
Tische. Es enthält die folgenden Attribute:
book_id
– Verweist auf dasbook
Tabelle.author_id
– Verweist auf denauthor
Tabelle.authorship_role_id
– Verweist aufauthorship_role
Tabelle.
Diese drei Attribute bilden zusammen den zusammengesetzten Primärschlüssel der Tabelle. Ein zusammengesetzter Primärschlüssel bedeutet, dass jede Kombination aller drei Attribute eindeutig sein muss; jede Kombination darf nur einmal vorkommen.
Sehen wir uns nun book_item
Tabelle, die wir bereits erwähnt haben, um Informationen für jedes physische Buch in einer Bibliothek zu speichern. Es enthält die folgenden Informationen:
id
– Eine eindeutige ID für jedes Buch als Artikel.isbn
– Verweist auf dasbook
Tabelle.library_id
– Verweist auf dielibrary
Tabelle.
Die Tabelle The publishing_house table is the next one in our model. It lists the publishers of all the books that the library has in its collection. The attributes in the table are as follows:
Tabelle ist die nächste in unserem Modell. Es listet die Verlage aller Bücher auf, die die Bibliothek in ihrer Sammlung hat. Die Attribute in der Tabelle lauten wie folgt:
id
– Eine eindeutige ID für jeden Verlag.publishing_house_name
– Der Name des Verlags (z. B. Penguin Books, McGraw-Hill, Simon &Schuster usw.).city_id
– Verweist aufcity
Tisch. Diese Verbindung ermöglicht es uns auch, sowohl die Stadt als auch das Land des Verlagshauses zu bestimmen. Derpublishing_house_name
–city_id
pair ist der alternative Schlüssel dieser Tabelle.
Okay, gehen wir weiter zur library
Tisch. Auf diese Tabelle wird im book_item
Tabelle, wo sie die Bibliothek definiert, in der sich jedes Exemplar eines Buches befindet. Dies ist erforderlich, da die gleichen Buchtitel in mehr als einer Bibliothek in einem Netzwerk zu finden sind (z. B. jede Bibliothek hat wahrscheinlich mindestens ein Exemplar von Der Herr der Ringe ). Daher müssen wir wissen, welches Buch sich in welcher Bibliothek befindet. Dazu benötigen wir die folgenden Attribute:
id
– Eine eindeutige ID für die Bibliothek.library_name
– Der Name dieser Bibliothek.address
– Die Adresse dieser Bibliothek.city_id
– Verweist aufcity
Tisch. Derlibrary_name
-city_id
pair ist der alternative Schlüssel dieser Tabelle.
Die nächste Tabelle in diesem Modell ist city
Tisch. Es ist eine einfache Liste von Städten, die wir für Informationen über Verlage, Bibliotheken und Bibliotheksmitglieder verwenden werden. Die Attribute sind:
id
– Eine eindeutige ID für die Stadt.postal_code
– Die Postleitzahl dieser Stadt.city_name
– Der Name dieser Stadt.country_id
– Verweist auf dascountry
Tabelle.
Danach bleibt in diesem Themenbereich nur noch eine Tabelle übrig:das country
Tisch. Dies ist eine Liste aller Länder, in denen sich unsere Bibliotheken und/oder Buchverlage befinden. Es besteht aus den folgenden Attributen:
id
– Eine eindeutige ID für jedes Land.country_name
– Der Name des Landes. Dies ist der alternative Schlüssel für die Tabelle.
Lassen Sie uns als Nächstes den zweiten Themenbereich untersuchen.
Mitglieder und Darlehen
Der Zweck dieses Themenbereichs ist die Verwaltung von Informationen über Bibliotheksmitglieder und die von ihnen ausgeliehenen Bücher. Es besteht aus drei Tabellen:
member
loaned_book
loan_status
Lassen Sie uns nun über die Tabellen sprechen.
Die erste Tabelle in diesem Bereich ist member
Tisch. Es enthält alle relevanten Informationen über Bibliotheksmitglieder. Seine Attribute lauten wie folgt:
id
– Eine eindeutige ID für jedes Mitglied.name
– Der Vorname des Mitglieds.surname
– Der Nachname des Mitglieds.address
– Die Adresse des Mitglieds.city_id
– Verweist aufcity
Tabelle.email_address
– Die E-Mail-Adresse des Mitglieds.phone_number
– Die Telefonnummer des Mitglieds.
Die nächste Tabelle ist das loaned_book
Tisch. Es speichert Informationen über alle jemals ausgeliehenen Bücher. Auf diese Weise können wir den Bibliotheksbestand und den Status eventuell ausgeliehener Bücher verfolgen. Diese Tabelle besteht aus den folgenden Attributen:
id
– Eine eindeutige ID für jedes ausgeliehene Buch.book_item_id
– Verweist aufbook_item
Tabelle.member_id
– Verweist auf dasmember
Tabelle.date_loaned
– Das Ausleihdatum dieses Buches.date_due
– Das Datum, an dem dieses Buch zurückgegeben werden sollte.date_returned
– Datum der tatsächlichen Rückgabe des Buches an die Bibliothek; Dies kann NULL sein, da wir das Datum erst kennen, wenn das Buch zurückgegeben wird.overdue_fine
– Die vom Mitglied gezahlte Verspätungsgebühr (falls zutreffend), die normalerweise auf der Grundlage der Differenz zwischen demdate_returned
berechnet wird und dasdate_due
. Dies kann NULL sein, weil ein rechtzeitig zurückgegebenes Buch keine Strafe hat.loan_status_id
– Referenziert denloan_status
Tabelle.ts
– Der Zeitstempel, als dieser Ausleihstatus eingegeben wurde.
Der loan_status
Tabelle ist die letzte in unserem Datenmodell. Es ist einfach eine Liste aller möglichen Ausleihstatus, z. aktiv, überfällig, zurückgegeben usw. Diese Tabelle besteht aus den folgenden Attributen:
id
– Eine eindeutige ID für jeden Ausleihstatus.status_name
– Ein Name, der den Ausleihstatus beschreibt. Dies ist der alternative Schlüssel für die Tabelle.
Das war’s – wir sind alle Details unseres Datenmodells durchgegangen!
Was denken Sie über das Bibliotheksdatenmodell?
Wir haben allgemeine Prinzipien in diesem Modell behandelt, also sollte es (mit ein paar Optimierungen) für jede Bibliothek gelten. Kennen Sie Bibliotheksdetails, die wir übersehen haben? Oder fanden Sie das Modell nützlich und leicht anwendbar? Sagen Sie Ihre Meinung im Kommentarbereich.