Struktura prostej bazy MySql

0

Witam,

zaczynam zabawę z bazami danymi i postanowiłem stworzyć bazę do strony z recenzjami filmów.( taka w ramach ćwiczeń) .

Na stronie, każdy zalogowany użytkownik, będzie mógł dodawać swoją, krótką opinię o danym filmie.

oto struktura mojej bazy:

Tabele:

1.Użytkownicy: id_uzytkownika, login, haslo,imie ,nazwisko,email,avatar

2.Recenzje: id_filmu, id_uzytkownika, tresc, ocena, data

3.Filmy: id_filmy, id_kategorii, tytuł, rok_pr, rezyser, opis,średnia,ilosc_recenzjii

4.Kategorie: id_kat, nazwa

Pytanie:
Czy jest do "dobra" stryktura bazy??
Czy warto z tabeli Filmy wyodrębnić info o średniej i ilości ocen ?

POZDR

0

Srednia i ilosc bym pominal. Takie rozwiazania stosuje sie w hurtowniach danych, gdzie wygenerowanie raportu o sredniej na przyklad trwaloby powiedzmy 5 minut, czy 5 godzin (bo az tyle danych). Jak nie bedzie tak duzo danych, to nie ma sensu, bo to tylko dodatkowa robota.

Oprocz tego mozesz pominac id_uzytkownika, jezeli zakladasz, ze login jest unikalny - wtedy moze sluzyc za klucz glowny.

I kategorie - w takim ukladzie jak teraz jest zakladasz, ze film jest tylko jednego rodzaju. A co w przypadku np. komedii romantycznej? Albo komedii sensacyjnej? Lepiej powiazac tabela posrednia typu Filmy_kategorie: id_filmu, id_kategorii. Wtedy gatunek pokazywany bylby np. komedia/sensacja.

Cala reszta wyglada w porzadku :)

0

Co do zostawienie samego loginu jako klucza głównego: o ile dopóki siedzisz na jednej bazie i nikt nie zamierza zmieniać swojego loginu -- jest ok. Gorzej, jak zmienisz bazę, a razem z tym kodowanie... Różne dziwne rzeczy potrafią się wtedy dziać. :P

Co do średniej i ilości recenzji, zgadzam się z johnym... Nie ma sensu rozspójniać bazy dla niewielkiego wzrostu wydajności. Gdy okaże się to jednak krytyczne, można zawsze dodać ;).

1 użytkowników online, w tym zalogowanych: 0, gości: 1