0%

Eine Tabelle erstellen, die ihre Daten schützt · Abschlussprojekt

Abschlussprojekt: Projekt: Die Tabelle members bauen

Die Tabelle items kann jetzt die Angaben zu jedem ausleihbaren Gegenstand schützen. Die Menschen, die diese Gegenstände ausleihen, brauchen ihre eigene Tabelle mit Regeln, die Mitgliedsdatensätze verlässlich halten.

Deine schema.sql enthält bereits die fertige Tabelle unten:

CREATE TABLE items (
    id INTEGER PRIMARY KEY,
    asset_tag TEXT NOT NULL UNIQUE,
    name TEXT NOT NULL,
    category TEXT NOT NULL,
    loan_days INTEGER NOT NULL DEFAULT 7 CHECK (loan_days > 0)
);

Dieses Mal baust du die nächste Tabelle anhand ihres erforderlichen Verhaltens, statt eine ausgearbeitete Anweisung zu kopieren.

Die Mitgliedertabelle bauen

Öffne schema.sql. Lass die Tabelle items intakt und schreibe darunter eine zweite CREATE TABLE-Anweisung für eine Tabelle namens members.

Die Tabelle braucht vier Spalten:

SpalteArt des WertesErforderliches Verhalten
idINTEGERJede ausdrücklich angegebene ID identifiziert eine Zeile und darf nicht wiederholt werden
member_codeTEXTErforderlich; ein exakt gleicher Code darf nicht wiederholt werden
nameTEXTErforderlich, aber zwei Mitglieder dürfen denselben Namen haben
loan_limitINTEGERErforderlich; verwendet beim Auslassen 3 und akzeptiert bei numerischen Werten nur positive Zahlen

Du hast alle hier benötigten SQL-Regeln bereits verwendet. Entscheide, welche Regel oder Regeln das jeweilige Verhalten sicherstellen, und setze sie zur passenden Spalte.

Klicke während der Arbeit auf Run. Wenn SQLite beide Anweisungen akzeptiert, zeigt die Ausgabe die Definitionen für items und members. Wenn es einen Fehler meldet, lies die Meldung und prüfe Kommas, Klammern und Schreibweise in der Nähe der genannten Stelle.

Vergleiche deine Tabelle vor dem Einreichen mit diesen Versuchen, Datensätze anzulegen:

VersuchErwartetes Ergebnis
ID 41, Code M-210, Name Riley Chen, Limit ausgelassenMit einem Limit von 3 gespeichert
ID 42, Code M-211, Name Riley Chen, Limit 5Gespeichert, obwohl sich der Name wiederholt
ID 43, Code M-212, Name Morgan Lee, Limit 2.5Mit 2.5 gespeichert
ID 41 erneut verwendetAbgelehnt
Exakt gleicher Code M-210 erneut verwendetAbgelehnt
Code oder Name ausgelassen oder member_code, name oder loan_limit als NULL angegebenAbgelehnt
Limit 0 oder -1Abgelehnt

Alle IDs in diesem Projekt werden ausdrücklich angegeben. Du musst SQLite sie nicht erzeugen lassen.

Wie bei loan_days ist der Vergleich auf eine positive Zahl keine allgemeine Typprüfung. Er ist die numerische Regel, die dieses Projekt braucht, und positive reelle Werte wie 2.5 sind erlaubt.

Wenn beide Definitionen geladen werden, wähle Submit und prüfe, ob sich die Datensatzversuche oben wie erwartet verhalten. Die ursprüngliche Tabelle items muss ihre Inventarkennzeichen und Leihdauern weiterhin schützen. Füge deshalb die neue Anweisung hinzu, ohne die erste abzuschwächen.

Wenn sich alle diese Datensätze wie erwartet verhalten, hast du allein aus Anforderungen eine zweite geschützte Tabelle entworfen. Die beiden Tabellen geben Gegenständen und Mitgliedern jetzt getrennte, verlässliche Speicherorte in der Verleihdatenbank.

Aufgabe

Behalte die fertige Tabelle items unverändert bei. Erstelle darunter eine Tabelle members mit diesen vier Spalten und Verhaltensweisen:

  • id verwendet INTEGER und lehnt wiederholte ausdrücklich angegebene IDs ab.

  • member_code verwendet TEXT, ist erforderlich und lehnt exakte Duplikate ab.

  • name verwendet TEXT und ist erforderlich, aber doppelte Namen sind erlaubt.

  • loan_limit verwendet INTEGER, ist erforderlich, hat beim Auslassen den Standardwert 3 und akzeptiert bei numerischen Werten nur positive Werte.

Klicke auf Run und bestätige, dass SQLite beide Tabellendefinitionen zeigt. Reiche dann dein Schema ein. Positive reelle Limits wie 2.5 sind erlaubt; NULL, null und negative Limits nicht.