Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][SQLite]Tabele bazy danych, jedna czy kilka? Filozofia...
arstherapia
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Piszecie, że należy unikać powtarzania się danych, a np. cena będzie się powtarzać, bo 80 %
filmów ma dwie ceny - 99 i 199 zł.
Nie o takie powtarzanie chodzi.
Przykladowo nie ma sensu w kazdym filmie pisac wszystkich danych autora: Imie, nazwisko, adres, tel, - gdyz to jest bezsensownym powtarzaniem calej masy danych.
Po to sie robi tabele Osoba by w niej zapisac RAZ dane osoby, a pozniej tylko przez ID sie do niej odwolywac. A co gdy osoba zmieni tel? Bedziesz latał po wszystkich rekordach i zmienial? A jak masz jeden rekord w tabeli osoba, to zmieniasz tel. tylko tam i wszystko gra.

Tak, samo nie ma sesnu za kazdym razem pisac "angielska" i "polskie napisy". Tutaj masz wiele opcji do wyboru:
1) Tworzysz tabele WERSJE z rekordami: angielska, polskie napisy, blabla, a w filmie przekazujesz tylko ID wersji zamiast calego tekstu.
2) Zamiast pola varchar, walisz tinyint i zamiast tekstow "angielska" i "polskie napisy dajesz 1,2,3,4.... gdzie 1 to "angielska" , gdzie 2 to polskie napisy itd
3) zamiast polavarchar czy tinyint dajesz pole ENUM - poczytaj w manualu mysql.
Go to the top of the page
+Quote Post

Posty w temacie
- arstherapia   [MySQL][SQLite]Tabele bazy danych, jedna czy kilka? Filozofia...   3.09.2014, 21:39:48
- - luniak   [PHP] pobierz, plaintext Tak sobie dalej myślę, że...   4.09.2014, 05:54:10
- - zidek   Jeśli każdy film ma jednego autora, a każdy autor ...   4.09.2014, 08:08:24
- - mmmmmmm   Jeśli mowa o filmach to jeszcze lepiej zrobić jesz...   4.09.2014, 08:27:15
- - phpion   @mmmmmmm: Po co w tej tabeli osobna kolumna na klu...   4.09.2014, 08:41:09
|- - mmmmmmm   Cytat(phpion @ 4.09.2014, 09:41:09 ) ...   4.09.2014, 09:07:55
- - nospor   w Film_kategoria tez nasz oddzielne ID i a dobrą s...   4.09.2014, 08:48:34
- - phpion   Zgadza się, dlatego napisałem "jeśli założyć...   4.09.2014, 08:50:47
- - nospor   No to jesli zalozyc, ze interesuje nas tylko autor...   4.09.2014, 08:54:07
- - arstherapia   O cholera ! Bardzo Wam dziękuję, muszę teraz ...   4.09.2014, 08:54:46
- - nospor   CytatPiszecie, że należy unikać powtarzania się da...   4.09.2014, 09:01:28
- - phpion   Oczywiście w tym o czym pisze ~nospor należy zacho...   4.09.2014, 09:09:18
- - nospor   CytatOczywiście w tym o czym pisze ~nospor należy ...   4.09.2014, 09:16:03
- - arstherapia   W footerze sklepu, jak już go sobie napiszę, umies...   4.09.2014, 14:57:46
- - Turson   Jak na moje dodaj primary keys typu film_id, osoba...   4.09.2014, 15:01:48
- - arstherapia   Dobrze, Turson, dziękuję !   4.09.2014, 15:04:35
- - nospor   CytatRozwiązanie to ma w sobie ograniczenie, że je...   4.09.2014, 16:52:33
|- - arstherapia   Cytat(nospor @ 4.09.2014, 17:52:33 ) ...   5.09.2014, 21:00:36
- - nospor   Po pierwsze: pisalem juz ci kiedys, ze jak chcesz ...   6.09.2014, 06:35:02
- - arstherapia   I dostało mi się słuszny OPR od nospor'a Fa...   6.09.2014, 11:28:22


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 13:19