![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 1 Dołączył: 13.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie ponownie,
dzisiaj natknąłem się na kolejny problem: jak zaplanować efektywnie strukturę bazy danych? W jednej tabeli mam: 1. Nazwa_filmu 2. Opis_filmu 3. Okładka (link) 4. Autor 5. Autor_bio 6. Autor_fot (link) 7. Wersja_jezykowa 8. Cena 9. Premiera ( tak, nie ) i chciałem dodać kategorię, ale uzmysłowiłem sobie, że jedna komórka może przyjmować tutaj wiele wartości: terapia poznawcza, terapia behawioralna, etc. Poczytałem i znalazłem taką zasadę, aby nie wciskać wielu wartości w jedną komórkę, więc rozwiązaniem jest osobna tabela, a tam np. 1. Kategoria_ID 2. Nazwa_kategorii Czy to ma sens? Jak pożenić zapytania i wyświetlenia pól z tabel ? To może autorów też wrzucić w osobną tabelę? Wtedy byłyby trzy: 1. Filmy 2. Kategorie 3. Autorzy A w przyszłości: 4. Klienci 5. Zamówienia Pozdrawiam, Rafał -------------------------- Tak sobie dalej myślę, że jeśli utworzę kilka tabel, to będę mieć między nimi relacje, czyli będę musiał nauczyć się i używać inner join itp. ... Prościej byłoby np. zamiast tabeli - "kategorie" utworzyć osobną kolumnę w tabeli filmy i tam wpisywać kategorię. Zamotałem się. Ten post edytował arstherapia 3.09.2014, 23:14:10 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Oczywiście w tym o czym pisze ~nospor należy zachować umiar i zdrowy rozsądek. Równie dobrze można by zamiast:
aktor [id, imie, nazwisko] dać aktor [id, imie_id, nazwisko_id] imie [id, wartosc] nazwisko [id, wartosc] co jednak byłoby kompletnie bez sensu, aczkolwiek z punktu widzenia unikania redundacji danych byłoby logiczne. Musisz "wyczuć" co rozbijać na osobne tabele (powiedzmy: słownikowe), a co nie. // Edit: @mmmmmmm - jak w takiej sytuacji realizujesz aktualizację danych? Ja w przypadku tego typu tabel po prostu usuwam dane (tutaj: dla filmu) i wrzucam je na nowo. W takiej sytuacji ID'ki niepotrzebnie byłyby zwiększane. Poza tym by zachować spójność danych i tak musiałbyś założyć ograniczenie unikalności na te kolumny. Ponadto nie wiem do czego ona miałaby być wykorzystana - nie będziesz przecież pobierał rekordu po jego id. Moim zdaniem dodatkowa kolumna id jest zbędna. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 09:04 |