Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Baza SQL, Czy ktoś potrafi..
Darek342
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 8.02.2005

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


jak w temacie.
chcialbym prosic o ewentualne wzmianki na temat zmian, ktore powinienem uwzglednic przy projektowaniu bazy..

Ma to byc baza biblioteki szkolnej.


  1. -- Baza danych: `biblioteka_szkolna`
  2. --
  3.  
  4. -- --------------------------------------------------------
  5.  
  6. --
  7. -- Struktura tabeli dla `autorzy`
  8. --
  9.  
  10. CREATE TABLE `autorzy` (
  11. `AutorID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  12. `Imie` varchar(20) NOT NULL DEFAULT '0',
  13. `Nazwisko` varchar(40) NOT NULL DEFAULT '',
  14. PRIMARY KEY (`AutorID`)
  15. ) TYPE=MyISAM AUTO_INCREMENT=6 ;
  16.  
  17.  
  18.  
  19. -- --------------------------------------------------------
  20.  
  21. --
  22. -- Struktura tabeli dla `czytelnicy`
  23. --
  24.  
  25. CREATE TABLE `czytelnicy` (
  26. `CzytelnikID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  27. `Imie` varchar(20) NOT NULL DEFAULT '',
  28. `Nazwisko` varchar(20) NOT NULL DEFAULT '',
  29. `Data_urodzenia` date NOT NULL DEFAULT '0000-00-00',
  30. `Miejsce_urodzenia` varchar(20) NOT NULL DEFAULT '',
  31. `Miejsce_zamieszkania` varchar(50) NOT NULL DEFAULT '',
  32. `Kod_pocztowy` varchar(6) NOT NULL DEFAULT '',
  33. `ulica` varchar(30) NOT NULL DEFAULT '',
  34. `Telefon` varchar(30) DEFAULT '',
  35. `KlasaID` int(10) UNSIGNED NOT NULL DEFAULT '0',
  36. PRIMARY KEY (`CzytelnikID`)
  37. ) TYPE=MyISAM AUTO_INCREMENT=19 ;
  38.  
  39. --
  40. -- Zrzut danych tabeli `czytelnicy`
  41. --
  42.  
  43.  
  44.  
  45. -- --------------------------------------------------------
  46.  
  47. --
  48. -- Struktura tabeli dla `gatunek`
  49. --
  50.  
  51. CREATE TABLE `gatunek` (
  52. `GatunekID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  53. `gatunek` varchar(50) NOT NULL DEFAULT '',
  54. PRIMARY KEY (`GatunekID`)
  55. ) TYPE=MyISAM AUTO_INCREMENT=4 ;
  56.  
  57. --
  58. -- Zrzut danych tabeli `gatunek`
  59. --
  60.  
  61.  
  62. -- --------------------------------------------------------
  63.  
  64. --
  65. -- Struktura tabeli dla `klasa`
  66. --
  67.  
  68. CREATE TABLE `klasa` (
  69. `KlasaID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  70. `Klasa` char(6) NOT NULL DEFAULT '',
  71. PRIMARY KEY (`KlasaID`)
  72. ) TYPE=MyISAM AUTO_INCREMENT=17 ;
  73.  
  74. --
  75. -- Zrzut danych tabeli `klasa`
  76. --
  77.  
  78.  
  79.  
  80. -- --------------------------------------------------------
  81.  
  82. --
  83. -- Struktura tabeli dla `ksiazki`
  84. --
  85.  
  86. CREATE TABLE `ksiazki` (
  87. `KsiazkiID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  88. `Tytul` varchar(60) NOT NULL DEFAULT '',
  89. `WydawnictwoID` int(10) UNSIGNED NOT NULL DEFAULT '0',
  90. `AutorID` int(10) UNSIGNED NOT NULL DEFAULT '0',
  91. `GatunekID` int(10) UNSIGNED NOT NULL DEFAULT '0',
  92. PRIMARY KEY (`KsiazkiID`)
  93. ) TYPE=MyISAM AUTO_INCREMENT=21 ;
  94.  
  95. --
  96. -- Zrzut danych tabeli `ksiazki`
  97. --
  98.  
  99.  
  100. -- --------------------------------------------------------
  101.  
  102. --
  103. -- Struktura tabeli dla `sygnatura`
  104. --
  105.  
  106. CREATE TABLE `sygnatura` (
  107. `Sygnatura` char(11) NOT NULL DEFAULT '',
  108. `KsiazkiID` int(11) UNSIGNED NOT NULL DEFAULT '0',
  109. PRIMARY KEY (`Sygnatura`)
  110. ) TYPE=MyISAM;
  111.  
  112. --
  113. -- Zrzut danych tabeli `sygnatura`
  114. --
  115.  
  116.  
  117.  
  118. -- --------------------------------------------------------
  119.  
  120. --
  121. -- Struktura tabeli dla `wydawnictwo`
  122. --
  123.  
  124. CREATE TABLE `wydawnictwo` (
  125. `WydawnictwoID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  126. `Wydawnictwo` char(20) DEFAULT NULL,
  127. PRIMARY KEY (`WydawnictwoID`)
  128. ) TYPE=MyISAM COMMENT='wydawnictwo' AUTO_INCREMENT=6 ;
  129.  
  130. --
  131. -- Zrzut danych tabeli `wydawnictwo`
  132. --
  133.  
  134.  
  135.  
  136. -- --------------------------------------------------------
  137.  
  138. --
  139. -- Struktura tabeli dla `wypozyczenia`
  140. --
  141.  
  142. CREATE TABLE `wypozyczenia` (
  143. `CzytelnikID` int(10) UNSIGNED NOT NULL DEFAULT '0',
  144. `Sygnatura` int(10) UNSIGNED NOT NULL DEFAULT '0',
  145. `Data_wypozyczenia` date DEFAULT NULL,
  146. `Data_oddania` date DEFAULT NULL,
  147. UNIQUE KEY `id_czytelnika` (`CzytelnikID`)
  148. ) TYPE=MyISAM;
  149.  
  150. --
  151. -- Zrzut danych tabeli `wypozyczenia`
  152. -- .


Bardzo proszę o pomoc... (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Cytat(soldat @ 2005-04-01 13:18:22)
W kwestii kilku autorów : w tabeli ksiazki typ pola AutorId zmieniłbym na varchar i zapisywałbym klucze do tabeli autorów oddzielone jakims separatorem (np. |)
Przy takim podejściu do problemu, jest to jedyna potrzebna zmiana w strukturze bazy.

Później np. przy przeszukiwaniu po kątem autora (-ów), wystarczy użyć np. REGEXP, lub zwykłego LIKE.

Bardzo glupi pomysl...

Jedynym slusznym rozwiazaniem tego problemu powinno byc zrobienie relacji wiele do wielu za pomoca dodatkowej tabeli laczacej ktora zawierala by pola id_ksiazki oraz id_autora
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: 25.12.2025 - 02:47