Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jakie dobrać relacje
Forum PHP.pl > Forum > Bazy danych > MySQL
pikasso
Witam wszystkich mam takie pytanie tworzę bazę danych Książki telefonicznej.
Mam takie tabele i teraz zastanawiam się co tu można jeszcze poprawić albo dodać żeby było bardziej rozbudowane (nie wiem myślałem o telefonach komórkowych, albo oddzielnie firmę opisać) i jakie dobrać relacje do tej bazy danych.

Czy takie ralacje będą dobre questionmark.gif
  1. CREATE DATABASE `Ksiazka` ;
  2. USE ksiazka;
  3. CREATE TABLE Klient (
  4. idKlient INT UNSIGNED NOT NULL AUTO_INCREMENT,
  5. Telefon_idTelefon INT UNSIGNED NOT NULL,
  6. Miasto_idMiasto INT UNSIGNED NOT NULL,
  7. Imie VARCHAR(20) NOT NULL,
  8. Nazwisko VARCHAR(25) NOT NULL,
  9. Ulica VARCHAR(30) NOT NULL,
  10. Kod_poczt VARCHAR(5) NOT NULL,
  11. Firma ENUM('Tak', 'Nie') NOT NULL DEFAULT 'TAK',
  12. PRIMARY KEY(idKlient),
  13. INDEX MIAS_FK(Miasto_idMiasto),
  14. INDEX TEL_FK(Telefon_idTelefon),
  15. FOREIGN KEY(Miasto_idMiasto)
  16. REFERENCES Miasto(idMiasto) ON DELETE CASCADE ON UPDATE RESTRICT,
  17. FOREIGN KEY(Telefon_idTelefon)
  18. REFERENCES Telefon(idTelefon) ON DELETE CASCADE ON UPDATE RESTRICT
  19. );
  20.  
  21. CREATE TABLE Miasto (
  22. idMiasto INT UNSIGNED NOT NULL AUTO_INCREMENT,
  23. Wojewodztwo_idWojewodztwo INT UNSIGNED NOT NULL,
  24. Nazwa VARCHAR(20) NOT NULL,
  25. Kierunkowy VARCHAR(2) NOT NULL,
  26. PRIMARY KEY(idMiasto),
  27. INDEX Miasto_FK(Wojewodztwo_idWojewodztwo),
  28. FOREIGN KEY(Wojewodztwo_idWojewodztwo)
  29. REFERENCES Wojewodztwo(idWojewodztwo) ON DELETE CASCADE ON UPDATE RESTRICT
  30. );
  31.  
  32. CREATE TABLE Telefon (
  33. idTelefon INT UNSIGNED NOT NULL AUTO_INCREMENT,
  34. Nr_tel VARCHAR(7) NOT NULL,
  35. Widocznosc ENUM('Tak', 'Nie') NOT NULL DEFAULT 'Tak',
  36. PRIMARY KEY(idTelefon)
  37. );
  38.  
  39. CREATE TABLE Wojewodztwo (
  40. idWojewodztwo INT UNSIGNED NOT NULL AUTO_INCREMENT,
  41. Nazwa VARCHAR(20) NOT NULL,
  42. PRIMARY KEY(idWojewodztwo)
  43. );
box3r
1; przenies kod pocztowy do tabeli miasto / miasto ma kod pocztowy a nie klient
2; dolacze tabele klient_miasto - relacja wiele do wielu/jeden do wielu jedno miasto moze miec kliku klientow
3; wokewodzto ma kilka miast - musi byc tabela przechowujaca to
4; klient przeciez tez moze miec kilka telefonow
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.