如何插入具有关系的表?

Cas*_*erT 2 sql entity-relationship foreign-keys primary-key

我只做过没有关系的数据库,但现在我需要做一些更严肃和正确的事情。

这是我的数据库设计: 替代文字

  1. 昆德 = 客户
  2. Vare = 产品
  3. 订单 = 订单(阅读:我要下订单)
  4. VareGruppe = ehm..type?(阅读:汽车、椅子、壁橱等)
  5. VareOrdre = Product_Orders

这是我的 SQL (SQLite) 架构:

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
);
Run Code Online (Sandbox Code Playgroud)

它应该可以正常工作。

但我对Product_Orders.

如何创建订单?例如,2 个产品使用SQL INSERT INTO? 我什么都做不了。

迄今为止:

只有当我手动将产品和数据插入Product_Orders,然后添加该数据以Orders =使其完整时。或者反过来(使用 1 个 SQL 创建订单,然后Product_orders - 1为每个条目手动将产品插入SQL)

Fab*_*der 6

您应该首先创建一个订单,然后在表 Product_Orders 中插入产品。这是必要的,因为您需要一个带有 id 的实际订单以将其与表 Product_Orders 相关联。

在能够在当前表中创建一个记录之前,您总是应该在外键表中创建一个记录。这样你应该创建一个“帖子”、客户、类型、产品、订单和产品订单。