Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Projekt bazy danych dla biblioteki
black008
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 31.08.2007

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


Witam. Ostatnio zostałem poproszony przez znajomego nauczyciela o zaprojektowanie i stworzenie aplikacji zarządzającej biblioteką szkolną. Aplikacja miałaby na celu pozwolić na stworzenie internetowej wypożyczalni. Stworzyłem wstępną wersję schematu bazy danych:

http://imageshack.us/photo/my-images/717/schematbazy.png/

Stwierdziłem że adres zameldowania i korespondencyjny będą w jednej tabeli i będą rozróżnianie przez pole "type_address".
Nie stworzyłem osobnej tabeli dla autorów książki ponieważ jeżeli będzie ich więcej można ich nazwisko umieścić w jednym polu w jednej tabeli.
Co sądzicie o takim pomyśle?? Jak wy byście to rozwiązali??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Co do adresów - słusznie.
Co do autorów - nierozsądne. Autor powinien mieć osobną encję (tabelę) i łaczyć się relacją "wiele do wielu". Czemu? Bo zachodzić może wiele możliwości:
- autor może mieć wiele książek,
- książka może być wielu autorów i jeszcze pod czyjąś redakcją.
To już sugeruje nie tyle relację n-n, ale n-n z parametrami, która wygląda prosto, ale w ORM-ach wszelakich jest upierdliwa. Poza tym jak sobie wyobrażasz modyfikowanie pola autora gdy używasz stringa w książce mającej kilku? Wyciągniesz rekord, zaczniesz cudować by go dokleić, wyciąć czy co tam będziesz robił? Jak zrobisz wyszukiwanie w bazie po autorze mając go wpisanego jako string? Co gdy zmieni nazwisko lub uznasz, że popełnił ktoś w nim błąd? A co gdy zechcesz userom pomóc w tym i zrobić autouzupełnianie?
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: 27.12.2025 - 21:53