Я только делал базы данных без отношений, но теперь мне нужно сделать что-то более серьезное и правильное.Как я могу вставить в таблицы с отношениями?
Вот мой дизайн базы данных: alt text http://i41.tinypic.com/27xqzxl.jpg
- Kunde = Клиент
- Варе = Продукт
- Ordre = Order (Read: Я хочу сделать заказ)
- VareGruppe = ehm..type? (Читайте: автомобиль, стул, шкаф и т.д.)
- 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
);
Он должен работать правильно.
Но я смущен насчет Product_Orders
.
Как мне создать заказ? Например, 2 продукта с использованием SQL INSERT INTO
? Я ничего не могу поделать.
До сих пор:
Только когда я вручную вставить продукты и данные в Product_Orders
, а затем добавить эти данные в Orders =
, что делает ее полной. Или наоборот (создайте заказ с помощью 1 SQL, затем вручную вставляйте продукты в Product_orders - 1
SQL для каждой записи)
Рассматривались ли вы в инструментах сторонних БД? Я не уверен, какой язык вы используете, но .NET использует LINQ, Java использует Hibernate/OpenJPA/многие другие. Многие программисты уходят от написания SQL в пользу манипулирования объектами. – Kieveli
Да, у меня есть Я очень люблю LINQ-TO-SQL. К сожалению, я работаю в команде, и они только хорошо питаются вокруг SQL - я не могу заставить их изучать новый инструмент, когда дело доходит до баз данных. – CasperT