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:
| Spalte | Art des Wertes | Erforderliches Verhalten |
|---|---|---|
id | INTEGER | Jede ausdrücklich angegebene ID identifiziert eine Zeile und darf nicht wiederholt werden |
member_code | TEXT | Erforderlich; ein exakt gleicher Code darf nicht wiederholt werden |
name | TEXT | Erforderlich, aber zwei Mitglieder dürfen denselben Namen haben |
loan_limit | INTEGER | Erforderlich; 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:
| Versuch | Erwartetes Ergebnis |
|---|---|
ID 41, Code M-210, Name Riley Chen, Limit ausgelassen | Mit einem Limit von 3 gespeichert |
ID 42, Code M-211, Name Riley Chen, Limit 5 | Gespeichert, obwohl sich der Name wiederholt |
ID 43, Code M-212, Name Morgan Lee, Limit 2.5 | Mit 2.5 gespeichert |
ID 41 erneut verwendet | Abgelehnt |
Exakt gleicher Code M-210 erneut verwendet | Abgelehnt |
Code oder Name ausgelassen oder member_code, name oder loan_limit als NULL angegeben | Abgelehnt |
Limit 0 oder -1 | Abgelehnt |
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:
idverwendetINTEGERund lehnt wiederholte ausdrücklich angegebene IDs ab.member_codeverwendetTEXT, ist erforderlich und lehnt exakte Duplikate ab.nameverwendetTEXTund ist erforderlich, aber doppelte Namen sind erlaubt.loan_limitverwendetINTEGER, ist erforderlich, hat beim Auslassen den Standardwert3und 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.