Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Początkujący - problem z utworzeniem bazy danych, Zaprojektowanie relacyjnej bazy w MySQL
Setesh
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam.

Mam następujący problem - dopiero uczę się MySQL'a i nie wiem jak zaprojektować relacyjną bazę danych (z prostą radzę sobie).

przykładowo :

Chcę w bazie umieścić użytkowników z następującymi danymi w tabeli :

Tablica User:
- Login char 30
- Hasło char 30
- E-Mail char 50
- UserID int AutoIncrement
- Samochody

Tablica Samochody : (tutaj myślałem o relacjach marka -> model jeden do wielu)
-- Model char 30
= Marka char 30

I tu zaczyna się mój problem...

O ile każdy użytkownik ma jeden email, jedno hasło i jeden login to samochodów może mieć 1 lub więcej (np 2 lub 3 - albo i 0).

Każdy samochód ma swoją markę i model ale ma też swoje parametry które nie wiem jak i gdzie usadowić - parametry takie jak np silnik i jego pojemność oraz czy jest to wersja Coupe, sedan czy inna samochodu - czy ma szyberdach itd

Nie mam pojęcia jak to stworzyć - możecie mi w tym pomóc ? Byłbym wdzięczny za pomoc. Obsługa bazy będzie w PHP.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cojack
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


tabela marki
- idMarki
i inne

tabela modele
- idModelu
i inne

tabela Użytkownicy
- idUsera
- Login char 30
- Hasło char 30
- E-Mail char 50

tabela UzytkownicySamochody
- idUsera
- idMarki
- idModelu
primary key( idUsera, idMarki, idModelu )

taki rodzaj relacji, nazywa się wiele do wielu (z ang. many-to-many) możesz o nim poczytać na internecie.

Ten post edytował cojack 31.08.2010, 16:36:58
Go to the top of the page
+Quote Post
Setesh
post
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(cojack @ 31.08.2010, 17:36:10 ) *
tabela marki
- idMarki
i inne

tabela modele
- idModelu
i inne

tabela Użytkownicy
- idUsera
- Login char 30
- Hasło char 30
- E-Mail char 50

tabela UzytkownicySamochody
- idUsera
- idMarki
- idModelu
primary key( idUsera, idMarki, idModelu )

taki rodzaj relacji, nazywa się wiele do wielu (z ang. many-to-many) możesz o nim poczytać na internecie.



Wymyśliłem coś takiego :

Zapytanie 1 : Tabela User
  1. $zapytanie = "CREATE TABLE User ( ".
  2. "IDUsed int(11) DEFAULT '0' NOT NULL auto_increment, ".
  3. "login char(30), ".
  4. "password char (50), ".
  5. "email char(50), ".
  6. "PRIMARY KEY (IDUser) ".
  7. ")";


Zapytanie 2 : Tabela Marka
  1. $zapytanie = "CREATE TABLE Marka ( ".
  2. "IDMarka int(11) DEFAULT '0' NOT NULL auto_increment, ".
  3. "nazwa char(50), ".
  4. "PRIMARY KEY (IDMarka) ".
  5. ")";


Zapytanie 3 : Tabela Model
  1. $zapytanie = "CREATE TABLE Model ( ".
  2. "IDModel int(11) DEFAULT '0' NOT NULL auto_increment, ".
  3. "nazwa char(50), ".
  4. "PRIMARY KEY (IDModel) ".
  5. ")";


Zapytanie 4 : Tabela UserCar
  1. $zapytanie = "CREATE TABLE UserCar ( ".
  2. "IDUser int(11) DEFAULT '0' NOT NULL auto_increment, ".
  3. "IDMarka int(11) DEFAULT '0' NOT NULL auto_increment, ".
  4. "IDModel int(11) DEFAULT '0' NOT NULL auto_increment, ".
  5. "PRIMARY KEY (IDUser, IDMarka, IDModel) ".
  6. ")";


A gdzie mam dodać takie dane jak np czy samochód spala benzynę ? W tabeli Model ?

Bo jeżeli tak to mogę zrobić coś takiego że będzie dodatkowa tabela np :

Tabela Paliwo :
- ID_paliwo
- Typ

a tabelę model rozszerzyć o ID_paliwo i dodać relację ? Chcę mieć listę rozwijaną przy wpisywaniu danych do tabeli.

Wtedy Tabela Model wyglądała by tak :

Zapytanie 3 : Tabela Model
  1. $zapytanie = "CREATE TABLE Model ( ".
  2. "IDModel int(11) DEFAULT '0' NOT NULL auto_increment, ".
  3. "nazwa char(50), ".
  4. "ID_paliwo int(1), ".
  5. "PRIMARY KEY (IDModel) ".
  6. ")";


Tak dobrze ?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 22:28