In den folgenden Abschnitten wird gezeigt, wie die Datenbanktabellenbeziehungen entworfen wurden. Die Objektnamen werden bereitgestellt, damit Sie sie in der Northwind 2.0 Starter Edition-Datenbank leicht überprüfen können.
Datenbankentwurf von Tabellen und Beziehungen
Um das Beziehungsdiagramm mit den sechs Tabellen und den Beziehungen zwischen ihnen zu öffnen, wählen Sie Datenbanktools>Beziehungen.
Dieses Diagramm zeigt alle sechs Tabellen. Im Diagramm kennzeichnen Linien zwischen Tabellen Beziehungen zwischen ihnen. Die 1 und das Unendlichkeitszeichen (∞) an den Enden von Zeilen stehen für die Einseitigkeit einer Beziehung (z. B. einen Kunden) und die Viele-Seite einer Beziehung. Beispielsweise sendet ein Kunde viele Bestellungen. Weitere Informationen finden Sie unter Leitfaden für Tabellenbeziehungen.
Weitere Informationen zu Tabellenprinzipien
Die folgenden Prinzipien gelten für Tabellen in Northwind 2.0 Starter Edition sowie für Tabellen im Allgemeinen.
Primärschlüssel Identifizieren Sie jeden Datensatz in einer Tabelle eindeutig. Alle Tabellen haben einen Primärschlüssel. Im Beziehungsdiagramm werden diese Primärschlüssel durch Schlüsselsymbole identifiziert. Konventionen zur Benennung von Primärschlüsseln werden nach der Tabelle benannt, in der sie sich befinden, zum Beispiel "TabellennameID".
Effizienz Für eine bessere Leistung und einen effizienteren Speicher sollten Primärschlüssel numerisch sein. Darüber hinaus ist es bequemer, wenn Access automatisch den neuen, eindeutigen Wert für den Primärschlüssel jedes neuen Datensatzes generiert. Der Datentyp "AutoWert" weist beide Eigenschaften auf. AutoNumbers sind ansonsten nicht aussagekräftige Zahlen und dienen keinem anderen Zweck. Weitere Informationen finden Sie unter Hinzufügen eines AutoWert-Felds als Primärschlüssel.
Fremdschlüssel Eine Tabelle kann auch einen oder mehrere Fremdschlüssel aufweisen, 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 verfügen möglicherweise ebenfalls über eigene eindeutige Indizes, z. B. "OrderStatus.StatusCode". Es ist unlogisch, zwei Bestellstatus in der Tabelle "OrderStatus" 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 haben, um die Suche und Sortierung dieser Felder 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. Für dieses Feld gibt es einen nicht eindeutigen Index, um die Suche und Sortierung zu beschleunigen.
Tabellen- und Feldnamen Sie können Elemente beliebig benennen, aber Konsistenz ist wichtig. Es wird empfohlen, dass Tabellen- und Feldnamen aus einem oder mehreren Wörtern ohne Leerzeichen und ohne Sonderzeichen wie Schrägstriche (/), Pfundzeichen (#) oder Prozentzeichen (%) bestehen sollten. Verwenden Sie z. B. "Bestelldatum", aber nicht "Bestelldatum". Verwenden Sie Bestellnummer oder Bestellnummer, aber nicht Bestellung#.
CamelCase Schreiben Sie Wörter groß, um einzelne Teile des Namens hervorzuheben, z. B. "Bestelldatum", aber nicht "Bestelldatum" oder "Bestelldatum".
Erforderlicher Wert Dieses Prinzip weist auf die Bedeutung von Geschäftsregeln für eine Anwendung hin. In manchen Situationen sind Werte oder sogar bestimmte Werte in einigen Feldern erforderlich. Was nützt zum Beispiel eine Bestellung, ohne den Kunden zu kennen, der sie aufgegeben hat? Das bedeutet, dass "Kunden-Nr" ein Pflichtfeld für die Tabelle "Bestellungen" ist.
Berechnete Felder Access unterstützt berechnete Felder in Tabellen, z. B. das Feld "Employees.FullName". Möglicherweise möchten Sie berechnete Felder lieber in einer Abfrage als in einer Tabelle erstellen.
Anlagenfelder Access unterstützt Anlagenfelder, z. B. "Mitarbeiter.Bild", das ein Bild des Mitarbeiters enthält. Anlagen können Bilder, Dokumente, E-Mails und andere Binärinformationen speichern. Anlagen belegen viel Speicherplatz in der Datenbank. Es ist effizienter, Anlagen stattdessen auf einem Dateiserver zu speichern.
Felder mit mehreren Werten Wie der Name schon sagt, speichern mehrwertige Felder einen oder mehrere Werte in einem einzigen Feld, z. B. "Employees.Title". Wir empfehlen Ihnen, sie sparsam zu verwenden, insbesondere wenn Sie Ihre Datenbank vergrößern möchten. Die meisten anderen Datenbanksysteme verfügen nicht über sie, so dass dies eine Menge Nacharbeit erfordern würde.
Weitere Informationen zu Datentypen finden Sie unter Einführung in Datentypen und Feldeigenschaften.
Einzelne Tabellen in Northwind
In diesem Abschnitt werden die wichtigsten Features der einzelnen Tabellen erläutert. Um den Entwurf einer Tabelle zu überprüfen, markieren Sie sie im Navigationsbereich, klicken Sie mit der rechten Maustaste darauf, wählen Sie Entwurfsansicht oder 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 von reservierten Wörtern, die zu Namenskonflikten führen können. Weitere Informationen finden Sie unter Informationen zu für Access reservierten Wörtern und Symbolen.
Tabelle "Employees"
In dieser Tabelle sind Informationen über die Mitarbeiter 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, können Sie sehen, dass FirstName + LastName einen eindeutigen Index haben. Da FirstName und LastName eindeutig indiziert sind, kann die Tabelle "Northwind" nicht zwei Mitarbeiter mit demselben Namen speichern. 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 einzufügen, fügen Sie sie dem vorhandenen Ausdruck mit dem entsprechenden Abstand zwischen den Komponenten hinzu. |
| Telefonfelder | Die Geschäftsregel für Telefone besagt, dass die Mitarbeiterpräferenz relevanter ist als die Art der Dienstleistung. Daher werden primäre und sekundäre Telefonnummern anstelle von Mobiltelefon, Büro, Privattelefon usw. verwendet. |
| Anrede | "Anrede" ist ein kurzes Textfeld. Zur Veranschaulichung des Features "mehrwertiges Feld" in Access handelt es sich um ein Kombinationsfeld mit einer bearbeitbaren Liste vordefinierter Werte. Kurze, statische Listen wie diese sind oft Kandidaten für mehrwertige Felder, da sie nicht viel ändern, wenn überhaupt. |
| JobTitle | JobTitle ist ein weiteres Pflichtfeld. |
Tabelle 'Kunden'
In dieser Tabelle sind Informationen zu Northwind-Kunden gespeichert.
| Felder | Beschreibung |
|---|---|
| CustomerName | Die Kunden von Northwind sind Unternehmen, und ein Kundenname ist erforderlich. Im Gegensatz zu Mitarbeiternamen sind sie jedoch nicht eindeutig indiziert, sodass zwei oder mehr Kunden denselben Namen haben können. |
| PrimaryContactFirstName, PrimaryContactLastName, PrimaryContactJobTitle |
Der Vor- und Nachname sowie die Position des primären Kontakts sind nicht erforderlich, da Kunden möglicherweise nicht eine Person als primären Kontakt haben. Kontakte dürfen ihre Berufsbezeichnung für einen Auftrag nicht angeben. |
| BusinessPhone | Northwind benötigt nur eine Telefonnummer für jeden Kunden, obwohl dadurch die Möglichkeit entfällt, mehrere Telefonnummern für Kunden oder für Kontakte von Kunden zu erfassen. In der Praxis gelten komplexere Geschäftsregeln für Kontaktinformationen normalerweise. |
| Address, City Bundesland, PLZ |
Northwind benötigt eine Adresse, um Bestellungen an Kunden zu versenden. Es gibt nur eine generische Adresse für einen Kunden. In realen Situationen haben Kunden häufig separate Rechnungs-, Versand- oder andere Adressen. Eine andere Geschäftsregel für Ihre Organization würde zusätzliche Felder erfordern. |
| Notizen | Das Feld "Notizen" ist ein Datentyp "Langer Text", in dem bis zu 1 GB Text gespeichert werden. Damit können Sie detaillierte Kommentare zu Kunden eingeben, die Sie in späteren Bestellsituationen verwenden können. |
Tabelle "Bestellungen"
In dieser Tabelle sind Informationen zu den Bestellungen von Northwind gespeichert.
| Felder | Beschreibung |
|---|---|
| OrderDate, ShippedDate, PaidDate | Bestellungen erfordern drei Daten. Hierbei handelt es sich um den Datentyp Datum/Uhrzeit, jedoch mit zwei Formaten. OrderDate hat sowohl ein Datum als auch eine Uhrzeit, da Sie möglicherweise das Bestellvolumen für verschiedene Teile des Tages analysieren möchten. Für die beiden anderen Daten ist nur das Datum erforderlich. Eine Tabellenvalidierungsregel für Versanddatum und Zahlungsdatum stellt sicher, dass diese Datumsangaben nicht vor dem Bestelldatum liegen. |
| Bestellstatus-ID | Der Status des Auftrags gibt an, wo sich der Auftrag im Northwind-Workflow befindet. Bestellungen durchlaufen vier Phasen: Neu —Fakturiert —>>Versendet —>Geschlossen. Der Fremdschlüssel für den aktuellen OrderStatus verwendet OrderStatusID aus der Nachschlagetabelle von OrderStatus. Durch die Verwendung einer Status-Lookup-Tabelle wird sichergestellt, dass einem Auftrag nur die vier vordefinierten Status zugeordnet werden können. |
Tabelle mit Auftragsdetails
In dieser Tabelle werden Informationen zu den Auftragsdetails von Northwind gespeichert.
| Felder | Beschreibung |
|---|---|
| OrderID | Jede Position in der Tabelle "Bestelldetails" muss zu einer Bestellung in der Tabelle "Bestellungen" gehören. "OrderID" ist ein Fremdschlüssel, der diesen Auftrag identifiziert. Wie bereits erwähnt, stellt eine Bestellung, die eine oder mehrere Positionen enthält, eine 1:n-Beziehung dar. |
| ProductID | Jeder Datensatz in der Tabelle "Bestelldetails" enthält die Produkt-ID für das bestellte Produkt. ProductID ist ein Fremdschlüssel in der Tabelle OrderDetails, der dieses Produkt in dieser Bestellung identifiziert. Auch dies ist eine 1:n-Beziehung. |
| Bestell-ID+ Produkt-ID | Wie Sie in der Tabelle "Mitarbeiter" gesehen haben, können mehrere Felder einen eindeutigen Index haben. Der eindeutige Index über Bestell-Nr+Produkt-ID in der Tabelle "Bestelldetails" stellt sicher, dass jede Bestellung ein Produkt nur einmal enthält. Wenn Sie das Eigenschaftenblatt Indizes über das Menüband öffnen, können Sie diesen eindeutigen Index sehen. |
Tabelle "Artikel"
Diese Tabelle enthält Informationen über die Produkte von Northwind.
| Felder | Beschreibung |
|---|---|
| Artikelcode | Neben dem Primärschlüssel, der ProductID, verfügen Northwind-Produkte über einen benutzerfreundlichen, eindeutig indizierten Produktcode. Mitarbeiter beziehen sich in der Regel auf Produktcodes und nicht auf Primärschlüsselwerte. Der Produktcode ist ein zusammengesetzter Wert, der aus einer Kategoriebezeichnung und einer Zahl besteht, z. B. B-1 für "Getränke", Produkt 1. |
| Product Name, Produktbeschreibung |
Zusätzlich zu kurzen Textproduktnamen gilt eine lange Textbeschreibung für Produkte. Dieser Wert kann in einer Katalogbeschreibung oder zur Beantwortung von Kundenfragen verwendet werden. |
| Einzelpreis | Alle Produkte werden mit einem Stückpreis für jeden Artikel verkauft, was die Datenbank als Präsentation der Funktionen vereinfacht. In den meisten realen Situationen ist die Preisgestaltung oft deutlich komplexer. |
Siehe auch