Racja, bazę też powinienem dodać:
CREATE TABLE noclegi(
id_noclegu INTEGER identity (1, 1),
kod_wlasciciela INTEGER NOT NULL,
nazwa TEXT NOT NULL,
rodzaj TEXT NOT NULL
);
CREATE TABLE info(
id_noclegu INTEGER NOT NULL,
ile_gwiazdek INTEGER,
preferencje TEXT
);
CREATE TABLE rezerwacje(
id_noclegu INTEGER NOT NULL,
kod_pokoju INTEGER NOT NULL,
nr_pokoju INTEGER NOT NULL,
ile_osobowy INTEGER NOT NULL,
lazienka VARCHAR(3) NOT NULL
);
CREATE TABLE szcz_rezerwacje(
kod_pokoju INTEGER NOT NULL,
zajety VARCHAR(3),
do_kiedy DATE);
CREATE TABLE cennik_rezerwacji (
kod_pokoju INTEGER NOT NULL,
cena REAL NOT NULL
);
CREATE TABLE wlasciciel(
kod_wlasciciela INTEGER NOT NULL,
id_noclegu INTEGER NOT NULL,
imie TEXT NOT NULL,
nazwisko TEXT NOT NULL,
PESEL VARCHAR(11) NOT NULL
);
CREATE TABLE posilki(
id_noclegu INTEGER NOT NULL,
id_posilku INTEGER NOT NULL,
rodzaj TEXT NOT NULL,
dostepnosc VARCHAR(3) NOT NULL
);
CREATE TABLE lokalizacja(
id_noclegu INTEGER NOT NULL,
pkp VARCHAR(12),
pks VARCHAR(12),
lotnisko VARCHAR(12)
);
CREATE TABLE adresy(
id_noclegu INTEGER NOT NULL,
wojewodztwo TEXT NOT NULL,
miejscowosc TEXT NOT NULL,
ulica TEXT NOT NULL,
nr VARCHAR(5) NOT NULL,
kod_pocztowy VARCHAR(6) NOT NULL
);
CREATE TABLE telefony(
kod_wlasciciela INTEGER NOT NULL,
numer INTEGER NOT NULL
);
ALTER TABLE noclegi ADD PRIMARY KEY (id_noclegu);
ALTER TABLE info ADD PRIMARY KEY (id_noclegu);
ALTER TABLE rezerwacje ADD PRIMARY KEY (id_noclegu, kod_pokoju);
ALTER TABLE cennik_rezerwacji ADD PRIMARY KEY (kod_pokoju);
ALTER TABLE wlasciciel ADD PRIMARY KEY (kod_wlasciciela);
ALTER TABLE posilki ADD PRIMARY KEY (id_posilku);
ALTER TABLE lokalizacja ADD PRIMARY KEY(id_noclegu);
ALTER TABLE adresy ADD PRIMARY KEY (id_noclegu);
ALTER TABLE telefony ADD PRIMARY KEY (kod_wlasciciela);
ALTER TABLE szcz_rezerwacje ADD PRIMARY KEY (kod_pokoju);
ALTER TABLE wlasciciel ADD FOREIGN KEY (id_noclegu) REFERENCES noclegi(id_noclegu)
ON UPDATE CASCADE;
ALTER TABLE info ADD FOREIGN KEY (id_noclegu) REFERENCES noclegi(id_noclegu)
ON UPDATE CASCADE;
ALTER TABLE rezerwacje ADD FOREIGN KEY (kod_pokoju) REFERENCES cennik_rezerwacji(kod_pokoju)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE rezerwacje ADD FOREIGN KEY (id_noclegu) REFERENCES noclegi(id_noclegu)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE telefony ADD FOREIGN KEY (kod_wlasciciela) REFERENCES wlasciciel(kod_wlasciciela)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE lokalizacja ADD FOREIGN KEY (id_noclegu) REFERENCES noclegi(id_noclegu)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE adresy ADD FOREIGN KEY (id_noclegu) REFERENCES noclegi(id_noclegu)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE posilki ADD FOREIGN KEY (id_noclegu) REFERENCES noclegi(id_noclegu)
ON UPDATE CASCADE;
ALTER TABLE rezerwacje ADD FOREIGN KEY (kod_pokoju) REFERENCES szcz_rezerwacje(kod_pokoju)
ON UPDATE CASCADE;
ALTER TABLE posilki ADD CHECK (dostepnosc IN ('TAK','NIE'));
ALTER TABLE rezerwacje ADD CHECK (lazienka IN ('TAK','NIE'));
ALTER TABLE cennik_rezerwacji ADD CHECK (cena>0);
Wśród dodatkowych pytań: SQL express 2014 nie obsługuje zmiennych typu serial, czy zastąpienie tego identity(1,1) spowoduje mi autoinkrementację klucza głównego?