Ich habe nur Datenbanken ohne Beziehungen gemacht, aber jetzt muss ich etwas ernsthafteres und korrekteres tun.Wie kann ich Tabellen mit Beziehungen einfügen?
Hier ist meine Datenbank-Design: alt text http://i41.tinypic.com/27xqzxl.jpg
- Kunde = Kunden
- Vare = Produkt
- Ordre = Order (lesen: Ich möchte eine Bestellung machen)
- VareGruppe = äh..typ? (Lesen Sie: Auto, Stuhl, Schrank etc.)
- VareOrdre = Product_Orders
Hier mein SQL ist (SQLite) Schema:
CREATE TABLE Post (
Postnr INTEGER NOT NULL PRIMARY KEY,
Bynavn VARCHAR(50) NOT NULL
);
CREATE TABLE Kunde (
CPR INTEGER NOT NULL PRIMARY KEY,
Navn VARCHAR(50) NOT NULL,
Tlf INTEGER NOT NULL,
Adresse VARCHAR(50) NOT NULL,
Postnr INTEGER NOT NULL
CONSTRAINT fk_postnr_post REFERENCES Post(Postnr)
);
CREATE TABLE Varegruppe (
VGnr INTEGER PRIMARY KEY,
Typenavn VARCHAR(50) NOT NULL
);
CREATE TABLE Vare (
Vnr INTEGER PRIMARY KEY,
Navn VARCHAR(50) NOT NULL,
Pris DEC NOT NULL,
Beholdning INTEGER NOT NULL,
VGnr INTEGER NOT NULL
CONSTRAINT fk_varegruppevgnr_vgnr REFERENCES Varegruppe(VGnr)
);
CREATE TABLE Ordre (
Onr INTEGER PRIMARY KEY,
CPR INTEGER NOT NULL
CONSTRAINT fk_kundecpr_cpr REFERENCES Kunde(CPR),
Dato DATETIME NOT NULL,
SamletPris DEC NOT NULL
);
CREATE TABLE VareOrdre (
VareOrdreID INTEGER PRIMARY KEY,
Onr INTEGER NOT NULL
CONSTRAINT fk_ordrenr_onr REFERENCES Ordre(Onr),
Vnr INTEGER NOT NULL
CONSTRAINT fk_varevnr_vnr REFERENCES Vare(Vnr),
Antal INTEGER NOT NULL
);
Es sollte korrekt funktionieren.
Aber ich bin verwirrt über Product_Orders
.
Wie erstelle ich eine Bestellung? Zum Beispiel, 2 Produkte mit SQL INSERT INTO
? Ich kann nichts zur Arbeit bekommen.
Bisher:
Nur wenn ich manuell einfügen Produkte und Daten in Product_Orders
und dann diese Daten zu Orders =
hinzufügen, die es komplett macht. Oder anders herum (Erstellen Sie eine Bestellung mit 1 SQL, dann manuell Produkte in Product_orders - 1
SQL für jeden Eintrag einfügen)
Haben Sie in Betracht gezogen, in DB-Tools von Drittanbietern zu suchen? Ich bin nicht sicher, welche Sprache Sie verwenden, aber .NET verwendet LINQ, Java verwendet Hibernate/OpenJPA/viele andere. Viele Programmierer entfernen sich vom Schreiben von SQL zugunsten der Manipulation von Objekten. – Kieveli
Ja, ich habe Ich liebe LINQ-TO-SQL wirklich. Leider arbeite ich in einem Team, und sie füttern nur bequem SQL - ich kann nicht scheinen, sie ein neues Werkzeug zu lernen, wenn es um Datenbanken geht – CasperT