In den folgenden Abschnitten wird gezeigt, wie die Datenbanktabellenbeziehungen entworfen wurden. Die Objektnamen werden bereitgestellt, damit Sie sie problemlos in der Northwind 2.0 Starter Edition-Datenbank untersuchen können.
Um das Beziehungsdiagramm mit den sechs Tabellen und den Beziehungen zwischen ihnen zu öffnen, wählen Sie Datenbanktools > Beziehungen aus.
Dieses Diagramm zeigt alle sechs Tabellen. Im Diagramm identifizieren Linien zwischen Tabellen die Beziehungen zwischen ihnen. Die 1 und das Unendlichkeitssymbol (∞) an den Zeilenenden stellen die 1-Seite einer Beziehung (z. B. ein Kunde) und die n-Seite einer Beziehung dar. Beispielsweise übermittelt ein Kunde viele Bestellungen. Weitere Informationen finden Sie unter Leitfaden zu Tabellenbeziehungen.
Die folgenden Prinzipien gelten sowohl für Tabellen in Northwind 2.0 Starter Edition als auch für Tabellen im Allgemeinen.
Primärschlüssel Identifizieren Sie jeden Datensatz in einer Tabelle eindeutig. Alle Tabellen verfügen über einen Primärschlüssel. Im Beziehungsdiagramm identifizieren Schlüsselsymbole diese Primärschlüssel. Primärschlüsselbenennungskonventionen werden für die Tabelle benannt, in der sie sich befinden, z. B. "TableNameID".
Hinzufügen eines AutoWert-Felds als Primärschlüssel.
Effizienz Für eine bessere Leistung und einen effizienteren Speicher sollten Primärschlüssel numerisch sein. Darüber hinaus ist es praktischer, access automatisch den neuen eindeutigen Wert für den Primärschlüssel jedes neuen Datensatzes zu generieren. Der AutoNumber-Datentyp weist beide Merkmale auf. AutoNumbers sind andernfalls nicht aussagekräftige Zahlen und dienen keinem anderen Zweck. Weitere Informationen finden Sie unterFremdschlüssel Eine Tabelle kann auch einen oder mehrere Fremdschlüssel enthalten, je nachdem, ob sie mit anderen Tabellen in der Datenbank verknüpft ist. Ein Fremdschlüssel enthält Werte, die Werten im Primärschlüssel der verknüpften Tabelle entsprechen.
Eindeutige Indizes Andere Felder in Tabellen können auch über eigene eindeutige Indizes verfügen, z. B. OrderStatus.StatusCode. Es ist unlogisch, zwei Order Statuses in der OrderStatus-Tabelle mit demselben Code zu haben, obwohl StatusCode selbst nicht der Primärschlüssel ist. Ein eindeutiger Index weist Access an, doppelte Werte in diesem Feld zu verhindern.
Nicht eindeutige Indizes Tabellen können auch Indizes enthalten, um Suchvorgänge und Sortierungen nach diesen Feldern zu beschleunigen, z. B. Orders.OrderDate. Viele Bestellungen können am selben Tag aufgegeben werden, und Sie möchten häufig nach Bestelldaten suchen und sortieren. Es gibt einen nicht eindeutigen Index für dieses Feld, um die Suche und Sortierung zu beschleunigen.
Tabellen- und Feldnamen Sie können Dinge beliebig benennen, aber Konsistenz ist wichtig. Es wird empfohlen, dass Tabellen- und Feldnamen aus einem oder mehreren Wörtern ohne Leerzeichen bestehen und keine Sonderzeichen wie ein Schrägstrich (/), ein Nummernzeichen (#) oder ein Prozentzeichen (%). Verwenden Sie beispielsweise OrderDate, aber nicht Order Date; Verwenden Sie OrderNumber oder OrderNo, aber nicht Order#.
CamelCase Großbuchstaben von Wörtern, um einzelne Teile des Namens hervorzuheben, z. B. OrderDate, aber nicht Orderdate oder orderDate.
Erforderlicher Wert Dieses Prinzip zeigt, wie wichtig Geschäftsregeln für eine Anwendung sind. Einige Situationen erfordern Werte oder sogar bestimmte Werte in einigen Feldern. Was ist z. B. sinnvoll, wenn eine Bestellung nicht den Kunden kennt, der sie aufgegeben hat? Dies bedeutet, dass CustomerID ein Pflichtfeld für die Tabelle Orders ist.
Berechnete Felder Access unterstützt berechnete Felder in Tabellen, z. B. das Feld Employees.FullName. Sie können es vorziehen, berechnete Felder in einer Abfrage anstatt in einer Tabelle zu erstellen.
Anlagenfelder Access unterstützt Anlagenfelder, z. B. Employees.Picture, die ein Bild des Mitarbeiters enthält. Anlagen können Bilder, Dokumente, E-Mails und andere binäre Informationen speichern. Anlagen belegen viel Platz in der Datenbank. Es ist effizienter, Anlagen stattdessen auf einem Dateiserver zu speichern.
Mehrwertige Felder Wie der Name schon sagt, speichern mehrwertige Felder einen oder mehrere Werte in einem einzelnen Feld, z. B. Employees.Title. Es wird empfohlen, sie sparsam zu verwenden, insbesondere wenn Sie ein Upsize ihrer Datenbank durchführen möchten. Die meisten anderen Datenbanksysteme verfügen nicht über sie, sodass dies viel Nacharbeit erfordern würde.
Weitere Informationen zu Datentypen finden Sie unter Einführung in Datentypen und Feldeigenschaften.
In diesem Abschnitt werden die wichtigsten Features der einzelnen Tabellen erläutert. Um den Entwurf einer Tabelle zu überprüfen, wählen Sie ihn im Navigationsbereich aus, klicken Sie mit der rechten Maustaste darauf, wählen Sie Entwurfsansicht aus, oder wählen Sie Datenbanktools > Beziehungen aus, und klicken Sie dann mit der rechten Maustaste auf ein Tabellenobjekt. Weitere Informationen finden Sie unter Einführung in Tabellen.
Wichtig: Vermeiden Sie die Verwendung reservierter Wörter, die zu Namenskonflikten führen können. Weitere Informationen finden Sie unter Informationen zu reservierten Access-Wörtern und -Symbolen.
Tabelle "Employees"
In dieser Tabelle werden Informationen zu den Mitarbeitern von Northwind gespeichert.
Felder |
Beschreibung |
FirstName, LastName |
Beide Namen sind erforderlich, und in Northwind müssen sie zusammen eine eindeutige Kombination sein. Wenn Sie im Tabellenentwurf das Dialogfeld Indizes öffnen, sehen Sie, dass FirstName + LastName einen eindeutigen Index aufweisen. Da FirstName und LastName eindeutig indiziert sind, können in der Northwind-Tabelle nicht zwei Mitarbeiter mit demselben Namen gespeichert werden. In anderen Situationen können Sie eine andere Geschäftsregel verwenden. |
FullNameFNLN, FullNameLNFN |
Sehen Sie sich die Ausdruckseigenschaft berechneter Felder an, um zu sehen, wie Access Werte in berechneten Feldern kombiniert. Um eine mittlere Initiale einzuschließen, fügen Sie ihn dem vorhandenen Ausdruck mit dem entsprechenden Abstand zwischen den Komponenten hinzu. |
Telefonfelder |
Die Geschäftsregel für Telefone lautet, dass die Mitarbeiterpräferenz relevanter ist als die Art des Diensts. Daher werden primäre und sekundäre Telefonnummern anstelle von Zelle, Büro, Zuhause usw. verwendet. |
Anrede |
Anrede ist ein Kurzes Textfeld. Zur Veranschaulichung des Features für mehrwertige Felder in Access handelt es sich um ein Kombinationsfeld mit einer bearbeitbaren Liste vordefinierter Werte. Kurze, statische Listen wie diese sind häufig Kandidaten für mehrwertige Felder, da sie sich nicht viel ändern, wenn überhaupt. |
JobTitle |
JobTitle ist ein weiteres Pflichtfeld. |
Customers-Tabelle
In dieser Tabelle werden Informationen zu Den Kunden von Northwind gespeichert.
Felder |
Beschreibung |
CustomerName |
Die Kunden von Northwind sind Unternehmen, und ein Kundenname ist erforderlich. Im Gegensatz zu Mitarbeiternamen ist sie jedoch nicht eindeutig indiziert, sodass zwei oder mehr Kunden denselben Namen haben können. |
PrimaryContactFirstName, PrimaryContactLastName, PrimaryContactJobTitle |
Der Vor- und Nachname und die Position des primären Kontakts sind nicht erforderlich, da Kunden möglicherweise nicht über eine Person als Hauptansprechperson verfügen. Kontakte dürfen ihre Position nicht für eine Bestellung angeben. |
BusinessPhone |
Northwind erfordert nur eine Telefonnummer für jeden Kunden, obwohl dies die Möglichkeit entfällt, mehrere Telefonnummern für Kunden oder für Kontakte von Kunden zu erfassen. In realen Situationen gelten in der Regel komplexere Geschäftsregeln für Kontaktinformationen. |
Adresse, Ort Status, ZIP |
Northwind benötigt eine Adresse, um Bestellungen an Kunden zu versenden. Es gibt nur eine generische Adresse für einen Kunden. In realen Situationen verfügen Kunden häufig über separate Abrechnungs-, Versand- oder andere Adressen. Eine andere Geschäftsregel für Ihre organization erfordert zusätzliche Felder. |
Notizen |
Das Feld Notizen ist ein Long Text-Datentyp, der bis zu 1 GB Text speichert. Auf diese Weise können Sie detaillierte Kundenkommentare zur Verwendung in nachfolgenden Bestellsituationen eingeben. |
Tabelle "Orders"
In dieser Tabelle werden Informationen zu den Bestellungen von Northwind gespeichert.
Felder |
Beschreibung |
OrderDate, ShippedDate, PaidDate |
Bestellungen erfordern drei Datumsangaben. Sie haben alle den Datentyp Datum/Uhrzeit, aber mit zwei Formaten. OrderDate hat sowohl ein Datum als auch eine Uhrzeit, da Sie möglicherweise daran interessiert sind, das Auftragsvolumen für verschiedene Teile des Tages zu analysieren. Für die beiden anderen Datumsangaben ist nur das Datum erforderlich. Eine Tabellenüberprüfungsregel für ShippedDate und PaidDate stellt sicher, dass diese Datumsangaben nicht vor orderDate liegen. |
OrderStatusID |
Die Reihenfolge status gibt an, wo sich die Reihenfolge im Northwind-Workflow befindet. Aufträge durchlaufen vier Phasen: Neu – > In Rechnung gestellt – > Versendet – > Geschlossen.Der Fremdschlüssel für den aktuellen OrderStatus verwendet OrderStatusID aus der Nachschlagetabelle von OrderStatus. Die Verwendung einer Status-Nachschlagetabelle stellt sicher, dass nur die vier vordefinierten Status einer Bestellung zugewiesen werden können. |
Tabelle mit Bestelldetails
In dieser Tabelle werden Informationen zu den Bestelldetails von Northwind gespeichert.
Felder |
Beschreibung |
OrderID |
Jede Position in der Tabelle OrderDetails muss zu einem Auftrag in der Tabelle Orders gehören. OrderID ist ein Fremdschlüssel, der diese Bestellung identifiziert. Wie bereits erwähnt, veranschaulicht eine Bestellung, die mindestens eine Position enthält, eine 1:n-Beziehung. |
ProductID |
Jeder Datensatz in der Tabelle OrderDetails enthält die ProductID für das bestellte Produkt. ProductID ist ein Fremdschlüssel in der Tabelle OrderDetails, der das Produkt in dieser Reihenfolge identifiziert. Dies ist auch eine 1:n-Beziehung. |
OrderID+ ProductID |
Wie Sie in der Tabelle Employees gesehen haben, können mehrere Felder einen eindeutigen Index aufweisen. Der eindeutige Index für OrderID+ProductID in der Tabelle OrderDetails stellt sicher, dass jede Bestellung nur einmal ein Produkt enthält. Wenn Sie das Eigenschaftenblatt Indizes über das Menüband öffnen, wird dieser eindeutige Index angezeigt. |
Products-Tabelle
In dieser Tabelle werden Informationen zu Northwind-Produkten gespeichert.
Felder |
Beschreibung |
Productcode |
Zusätzlich zum Primärschlüssel ProductID verfügen Northwind-Produkte über einen menschlichen, eindeutig indizierten Produktcode. Mitarbeiter beziehen sich normalerweise auf Produktcodes, nicht auf Primärschlüsselwerte. Der Produktcode ist ein zusammengesetzter Wert, der aus einer Kategoriebezeichnung und einer Zahl besteht, z. B. B. B-1 für "Getränke", Produkt 1. |
Produktname, Produktbeschreibung |
Neben kurztext-Produktnamen gilt eine lange Textbeschreibung für Produkte. Dieser Wert kann in einer Katalogbeschreibung oder zur Beantwortung von Kundenfragen verwendet werden. |
UnitPrice |
Alle Produkte werden mit einem Stückpreis für jeden Artikel verkauft, was die Datenbank als Aushängeschild der Features vereinfacht. In den meisten realen Situationen ist die Preisgestaltung häufig deutlich komplexer. |
Weitere Informationen