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?? |
|
|
|
![]() |
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 |
@abort: Nigdzie nie napisałem, że tytuł jest unikalny, ale jest w miarę sensownym wyborem, gdy bierzemy pod uwagę wyjście od czegoś i ma to jeszcze być najwęższa możliwa informacja. W bazie bez problemu może być choćby i 100 takich samych tytułów. Wyszukiwarka może sobie wychodzić od dowolnego pola, ale korzysta z niej głównie użytkownik, który ISBN raczej na pewno nie zna. To bardziej dla bibliotekarza informacja (choć możliwość wyszukiwania po ISBN to dobra opcja dla wyszukiwarki). Usera nie obchodzi najczęściej czy jakaś książka miała ileś edycji, reedycji czy tłumaczeń. Jeśli nagle dostanie kilkanaście pozycji o odmiennych tytułach (lub tytułach w różnych językach) to może zgłupieć. To powinno być jako dodatkowa informacja. Przykładowo komunikat, że książka jest też znana pod innym tytułem, lub ma nowsze/starsze wydanie - z odnośnikiem jeśli jest dostępna w bibliotece. Pamiętajmy, że user powinien mieć informacje porcjowane. Ich nadmiar sprawi, że wszystko stanie się dla niego nieczytelne i nie będzie wiedział co jest grane. Tym bardziej jeśli spotyka się z interfejsem aplikacji po raz pierwszy. Bądźmy optymalni i nie zasypujmy usera nadmiarem niepotrzebnych z początku informacji ( lub sensownie je pogrupujmy).
@abort: To co piszesz o ISBN to wiem, ale problem jest tego typu, że tak naprawdę nie ma możliwości wybrania jednej cechy, która byłaby jednoznacznym identyfikatorem (ISBN też nie jest unikatowy, o czym w linku do wiki, który podałes, też przeczytasz). Dopiero połączenie kilku "pól" tworzy w miarę unikatowy "odcisk palca" książki bez nadmiernego powtarzania danych. Poza tym zwróć uwagę na fakt, że można zawsze lekko przemodelować całość, dopasować ISBN jako wyjściowe i do niego podpinać resztę elementów, włącznie z tytułem, który stanie się relacją typu many-to-many. Kwestia podejścia do optymalizacji i pewnie jakichś warunkow ograniczających narzuconych. Żeby zrozumiec o co mi chodzi... Masz różne ISBN, wskazujące tę samą książkę, ale w róznych edycjach i tłumaczeniach. Co wyświetlisz userowi? Wedle czego pogrupujesz? To przecież, suma sumarum, powinna być jedna pozycja w wyszukiwarce dla niego. Nie da się tego zrobić idealnie i jestem tego świadomy. Co do tłumacza zaś... Patrz tabela book_authors i komentarze do niej. Nie widzę problemu by tam tłumacza jako jeden ze statusów dodać. Nie pozbawimy się pola autor, a tłumacz jako dodatkowy "autor" to nie jest głupi pomysł. Zwłaszcza, że zdarza się, iż czytelnicy poszukują konkretnych tłumaczeń. W końcu wśród czytających jedne są bardziej cenione niż pozostałe. Z racji choćby wierności w porównaniu z oryginałem. |
|
|
|
black008 Projekt bazy danych dla biblioteki 27.10.2012, 17:19:20
thek Co do adresów - słusznie.
Co do autorów - nierozsą... 27.10.2012, 17:51:52
black008 Słuszna uwaga. Tego nie przewidziałem. Dzięki za p... 27.10.2012, 18:44:12
thek Dla relacji n-n pokazało Ci dobrze (tabela łącząca... 27.10.2012, 22:00:05
black008 CytatMyślę, że wystarczająco dałem Ci materiału do... 27.10.2012, 22:37:27
thek Powiem tak... Zacznij od określenia dziedziny prob... 28.10.2012, 12:54:45
abort Cytat(thek @ 27.10.2012, 22:00:05 ) B... 4.11.2012, 22:43:56 ![]() ![]() |
|
Aktualny czas: 24.12.2025 - 01:04 |