Jak powinna wyglądać baza danych dla witryny internetowej sklepu sportowego??
Myśląc nad tabelami na razie mam takie:
Klienci(poprzez rejestracje na stronie)
Zamówienia(przechowywane złożone zamówienia)
Opis towaru(opisujący towary z wszystkimi danymi, cena itp)
I tutaj moje pomysły się kończą.
Nie wiem co może jeszcze być potrzebne w tej bazie??
Proszę o jakieś sugestie
Opisz co w tym sklepie bedzie, bo sklep sklepowi nierowny. Np. czesc sklepow dzieli towary na kategorie.
Mogą się jeszcze przydać np. Producenci sprzętu.
Jeśli będą Zamówienia, to także Pozycje Zamówienia, żeby jakoś łączyć Zamówienia z Towarami.
Sklep zazwyczaj ma chyba jakichś pracowników, którzy mogą przeglądać Zamówienia, więc trzeba mieć i dla nich tabelę chociażby z hasłami.
--INTERNETOWY SKLEP MUZYCZNY
--DROP TABLE Recenzje_plyt;
DROP TABLE Pozycje_zamowione;
DROP TABLE Plyty;
DROP TABLE Autorzy;
DROP TABLE Wytwornie;
DROP TABLE Zamowienia;
DROP TABLE Kategorie;
DROP TABLE Pracownicy;
DROP TABLE Klienci;
CREATE TABLE Klienci(
KlientID NUMBER(6) CONSTRAINT klienci_Klient_id_pk PRIMARY KEY,
Imie VARCHAR2(20) CHECK (imie=InitCap(imie)),
Nazwisko VARCHAR2(20) CHECK (nazwisko=InitCap(nazwisko)),
Ulica VARCHAR2(20),
Nr_domu NUMBER(3),
Nr_mieszkania VARCHAR(20),
Miejscowosc VARCHAR2(25),
Kod_pocztowy VARCHAR2(6),
Login VARCHAR2(20),
Haslo VARCHAR2(12)
);
CREATE TABLE Pracownicy( --nowa tabelka
PracownikID NUMBER(6) CONSTRAINT Pracownicy_PracownikID_pk PRIMARY KEY,
Imie VARCHAR2(30) CHECK (imie=InitCap(imie)),
Nazwisko VARCHAR2(30) CHECK (nazwisko=InitCap(nazwisko)),
CzyAdministrator VARCHAR2(3),
DataZatrudnienia DATE,
DataZwolnienia DATE,
Login VARCHAR2(20),
Haslo VARCHAR2(12)
);
CREATE TABLE Kategorie(
KategoriaID NUMBER(6) CONSTRAINT Kategoria_KategoriaID_pk PRIMARY KEY,
nazwa VARCHAR2(20)
);
CREATE TABLE Zamowienia(
ZamowienieID NUMBER(6) CONSTRAINT Zamowienia_ZamowienieID_pk PRIMARY KEY,
KlientID NUMBER(6) CONSTRAINT Zamowienia_Klient_id_fk REFERENCES Klienci(KlientID),
PracownikID NUMBER(6) CONSTRAINT Zamowienia_Pracownik_id_fk REFERENCES Pracownicy(PracownikID), --nowe pole
Wartosc NUMBER(6,2),
Data DATE NOT NULL,
Oplacono DATE, --nowe pole
Wyslano DATE --nowe pole
);
CREATE TABLE Autorzy(
AutorID NUMBER(6) CONSTRAINT Autorzy_AutorID_pk PRIMARY KEY,
nazwa VARCHAR2(20) NOT NULL CHECK (nazwa=InitCap(nazwa))
);
CREATE TABLE Wytwornie(
WytworniaID NUMBER(6) CONSTRAINT Wytwornie_WytworniaID_pk PRIMARY KEY,
nazwa VARCHAR2(30) NOT NULL -- CHECK (nazwa=InitCap(nazwa))
);
CREATE TABLE Plyty(
Kod_towarowy NUMBER(13) CONSTRAINT plyty_Kod_towarowy_pk PRIMARY KEY,
KategoriaID NUMBER(6) CONSTRAINT Plyty_KategoriaID_fk REFERENCES Kategorie(KategoriaID),
AutorID NUMBER(6) CONSTRAINT Plyty_AutorID_fk REFERENCES Autorzy(AutorID),
WytworniaID NUMBER(6) CONSTRAINT Plyty_WytworniaID_fk REFERENCES Wytwornie(WytworniaID),
Tytul VARCHAR2(40) CHECK (tytul=InitCap(tytul)),
Cena NUMBER(3) NOT NULL
);
CREATE TABLE Pozycje_zamowione(
ZamowienieID NUMBER(6) CONSTRAINT Poz_zam_ZamowienieID_fk REFERENCES Zamowienia(ZamowienieID),
Kod_towarowy NUMBER(13) CONSTRAINT Poz_zam_Kod_towarowy_fk REFERENCES Plyty(Kod_towarowy),
Ilosc NUMBER(3)
);
--CREATE TABLE Recenzje_plyt(
--Kod_towarowy NUMBER(13) REFERENCES Plyty(Kod_towarowy),
--Recenzja VARCHAR2(350),
--Autor_recenzji VARCHAR2(12) NOT NULL CHECK (Autor_recenzji=InitCap(Autor_recenzji)),
--ocena NUMBER(2) CHECK (ocena BETWEEN 1 AND 10)
--);
PL/SQL pod oracle
DELETE pozycje_zamowione;
DELETE zamowienia;
DELETE pracownicy;
DELETE klienci;
DELETE plyty;
DELETE autorzy;
DELETE wytwornie;
DELETE kategorie;
INSERT INTO Kategorie VALUES (1, 'Pop');
INSERT INTO Kategorie VALUES (2, 'Rock');
INSERT INTO Kategorie VALUES (3, 'Hip-hop');
INSERT INTO Kategorie VALUES (4, 'Klasyczna');
INSERT INTO Kategorie VALUES (5, 'Heavy metal');
INSERT INTO Kategorie VALUES (6, 'Filmowa');
INSERT INTO Kategorie VALUES (7, 'Jazz');
INSERT INTO Kategorie VALUES (8, 'Kabaret');
INSERT INTO Kategorie VALUES (9, 'Poezja śpiewana');
INSERT INTO Kategorie VALUES (10, 'Reggea');
INSERT INTO Autorzy VALUES (1, 'Indios Bravos');
INSERT INTO Autorzy VALUES (2, 'The Police');
INSERT INTO Autorzy VALUES (3, 'Tiger');
INSERT INTO Autorzy VALUES (4,'Anna Maria Jopek');
INSERT INTO Autorzy VALUES (5,'Herbie Hancock');
INSERT INTO Autorzy VALUES (6,'Marcus Miller');
INSERT INTO Autorzy VALUES (7, 'Dire Straits');
INSERT INTO Autorzy VALUES (8, 'John Lennon');
INSERT INTO Autorzy VALUES (9, 'Keane');
INSERT INTO Autorzy VALUES (10, 'Raz, Dwa, Trzy');
INSERT INTO Autorzy VALUES (11, 'Erykah Badu');
INSERT INTO Autorzy VALUES (12, 'James Taylor');
INSERT INTO Autorzy VALUES (13, '50 Cent');
INSERT INTO Autorzy VALUES (14, 'Dr Dre');
INSERT INTO Autorzy VALUES (15, '2 Pac');
INSERT INTO Autorzy VALUES (16,'Andrea Bocelli');
INSERT INTO Autorzy VALUES (17,'Rafał Blechacz');
INSERT INTO Autorzy VALUES (18,'Kwartludium');
INSERT INTO Autorzy VALUES (19,'Slayer');
INSERT INTO Autorzy VALUES (20,'Ozzy Osbourne');
INSERT INTO Autorzy VALUES (21,'Anubis Gate');
INSERT INTO Autorzy VALUES (22, 'Piotr Fronczewski');
INSERT INTO Autorzy VALUES (23, 'Mark Knopfler');
INSERT INTO Autorzy VALUES (24, 'Osvaldo Golijov');
INSERT INTO Autorzy VALUES (25,'Grupa Mocarta');
INSERT INTO Autorzy VALUES (26,'Jan Kaczmarek');
INSERT INTO Autorzy VALUES (27,'Kabaret Ani Mr Mru');
INSERT INTO Autorzy VALUES (28,'Grzegorz Turnau');
INSERT INTO Autorzy VALUES (29,'Jacek Kaczmarski');
INSERT INTO Autorzy VALUES (30,'Kalina Jędrusik');
INSERT INTO Wytwornie VALUES (1, 'Universal Music Group');
INSERT INTO Wytwornie VALUES (2, 'CRS');
INSERT INTO Wytwornie VALUES (3, 'Warner Music Poland');
INSERT INTO Wytwornie VALUES (4, 'Sony BMG');
INSERT INTO Wytwornie VALUES (5, 'EMI Music Poland');
INSERT INTO Wytwornie VALUES (6, '4 Ever Music');
INSERT INTO Wytwornie VALUES (7, 'DUX');
INSERT INTO Wytwornie VALUES (8, 'Locomotive');
INSERT INTO Wytwornie VALUES (9,'Wyższa Szkoła Promocji');
INSERT INTO Wytwornie VALUES (10,'Luna');
INSERT INTO Wytwornie VALUES (11,'Fokus');
--reggea
INSERT INTO Plyty VALUES (130516913,10,2,1,'Every Breath You Take',36.5);
INSERT INTO Plyty VALUES (275027027,10,1,1,'Peace!',28.5);
INSERT INTO Plyty VALUES (317315531,10,3,2,'New Brand Style',48);
--Jazz
INSERT INTO Plyty VALUES (430516943,7,4,1,'Skłamałabym',16.5);
INSERT INTO Plyty VALUES (575027057,7,5,4,'Head Hunters',68.5);
INSERT INTO Plyty VALUES (619315561,7,6,4,'Tales',63);
--Rock
INSERT INTO Plyty VALUES (730516973,2,7,1,'Love Over Gold', 16.5);
INSERT INTO Plyty VALUES (875027087,2,8,4,'Imagine', 67.5);
INSERT INTO Plyty VALUES (917315591,2,9,1,'Live', 36.5);
--Pop
INSERT INTO Plyty VALUES (100516910,1,10,6,'Młynarski', 32);
INSERT INTO Plyty VALUES (115027011,1,11,1,'Baduizm', 31.5);
INSERT INTO Plyty VALUES (122315512,1,12,1,'One Man Band', 73);
--Hip Hop
INSERT INTO Plyty VALUES (131516113,3,13,1,'The Massacre', 31.5);
INSERT INTO Plyty VALUES (141027114,3,14,4,'Death Row Dayz', 70);
INSERT INTO Plyty VALUES (151315115,3,15,1,'Best Of 2 Pac', 54);
--Klasyczna
INSERT INTO Plyty VALUES (161516816,4,16,1,'Vivere - Greatest Hits', 31.5);
INSERT INTO Plyty VALUES (171027817,4,17,1,'Chopin - Complete Preludes', 31.5);
INSERT INTO Plyty VALUES (181315812,4,18,7,'Kwartludium', 28.5);
--Heavy metal
INSERT INTO Plyty VALUES (191516819,5,19,4,'Christ Illusion', 68.5);
INSERT INTO Plyty VALUES (201027820,5,20,4,'Black Rain', 66);
INSERT INTO Plyty VALUES (211315821,5,21,8,'Andromeda Unchained', 52);
--Filmowa
INSERT INTO Plyty VALUES (221516819,6,22,4,'Akademia Pana Kleksa', 23.5);
INSERT INTO Plyty VALUES (231027820,6,23,1,'Cal', 31.5);
INSERT INTO Plyty VALUES (241315821,6,24,1,'Youth Withouth Youth', 54);
--Kabaret
INSERT INTO Plyty VALUES (251516819,8,25,9,'Koncert Jubileuszowy', 39.5);
INSERT INTO Plyty VALUES (261027820,8,26,10,'Serwus Panie Janek', 33);
INSERT INTO Plyty VALUES (271315821,8,27,5,'Numer 1', 24.5);
--Poezja Śpiewana
INSERT INTO Plyty VALUES (281516819,9,28,11,'Kołysanki - Utulanki', 28);
INSERT INTO Plyty VALUES (291027820,9,29,5,'Arka Noego', 365);
INSERT INTO Plyty VALUES (201315821,9,30,1,'Muzyczna Kolekcja', 54);
INSERT INTO pracownicy VALUES (1,'Admin','Administrator','tak', TO_DATE('01-01-2007', 'DD-MM-YYYY'),NULL, 'admin', 'admin');
INSERT INTO Klienci VALUES (1, 'Jan', 'Kowalski', 'Nowa', '56', '2','Warszawa','00-999','user','user');
INSERT INTO Zamowienia VALUES(1,1,1,82, TO_DATE('01-01-2007', 'DD-MM-YYYY'),NULL,NULL);
INSERT INTO Pozycje_zamowione VALUES(1,281516819,1);
INSERT INTO Pozycje_zamowione VALUES(1,201315821,1);
COMMIT;
To było podstawą do mojego projektu z przedmiotu Bazy Danych 2 na <url=PŚK>http://www.tu.kielce.pl/</url> aplikacji w technologii psp oraclowej z racji iż pisane to było niekomercyjnie na licencji GPL to upubliczniam baze i inserty w celach edukacyjnych.
to ma byc prosta stronka z artykulami sportowymi.
klienci zamowienia towary opisytowarów
wielkie dzieki za podpowiedzi
usiade troche w domu zobacze jak to bedzie wygladalo
tucznik napisał(a)
to ma byc prosta stronka z artykulami sportowymi.
klienci zamowienia towary opisytowarów
wielkie dzieki za podpowiedzi
usiade troche w domu zobacze jak to bedzie wygladalo
To co wkleilem to jest baza dla prostej stronki, która działa i nie ma potrzeby jej "łatania" co 5 min ;)
ale jak tą baze teraz polączyć ze stroną??
A jakiej technologii uzywasz (silnik bazy, jezyk server-side, framework, itp)?
chodzi o to,że chce poprze php załadować tą bazę na stronę,
a pozniej jak klient cos zamowi, to żeby zapisywał do tej bazy dokładnie w tabeli pozycje zamowione.
A rozumiesz o co pytam? Juz wiemy, ze uzywasz php (tak, tak, wyobraz sobie, ze nie jest to jedyne mozliwe rozwiazanie). To teraz jeszcze napisz z jakim silnikiem bazy sie laczysz (MySQL to tez nie jedyny silnik na swiecie) oraz czy piszesz w samym php czy moze uzywasz jakiegos frameworka.
PS. Polecam przeczytac pierwszy lepszy kurs php, skoro nie wiesz jak sie laczyc z baza.