Cześć Wam!
Mam za zadanie zrobić w PHP takie tam: logowanie użytkownika, wyszukiwanie części (po nazwie, typie, marce), nadawanie rabatów użytkownikom. Działać ma to na 4 tabelach: użytkownicy, części, rabaty, typy części. Nie bardzo wiem jak stworzyć do tego odpowiednią bazę danych, chodzi mi o relacje między tabelkami. Problem mam największy z typem części, z tego co rozumiem ma to działać jako jakby taki typ wyliczeniowy w sensie, że część może być tylko któregoś z typów znajdującego się w tabeli "typy części".
Robiłem to wizualnie w darmowym DbSchema, który wygenerował mi coś takiego:
CREATE TABLE `projekt-czesci`.parts (
id INT NOT NULL AUTO_INCREMENT,
manufacturer VARCHAR(30) NOT NULL ,
model VARCHAR(30) NOT NULL ,
fk_type VARCHAR(30) NOT NULL ,
CONSTRAINT pk_parts PRIMARY KEY ( id )
);
CREATE INDEX idx_parts ON `projekt-czesci`.parts ( fk_type );
ALTER TABLE `projekt-czesci`.parts ADD CONSTRAINT fk_parts_parts_type FOREIGN KEY ( fk_type ) REFERENCES `projekt-czesci`.parts_type( `type` ) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE TABLE `projekt-czesci`.parts_type (
`type` VARCHAR(30) NOT NULL ,
CONSTRAINT pk_parts_type PRIMARY KEY ( `type` )
) ;
Przedstawiłem tworzenie tylko tabeli części i typy_części, z resztą raczej sobie poradzę. Czy coś takiego ma jakikolwiek sens? Czy tutaj nie chodzi o klucz obcy? Wiem, że trochę rzeczy tutaj nie potrzebnych jest w kodzie (po prostu tak wygenerowało). Z góry dzięki za podpowiedzi.