![]() |
![]() |
![]()
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: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Rozwiązanie to ma w sobie ograniczenie, że jeden film może być w dwóch kategoriach. Powinienies zrobic tabele łączącą jak ci pisalismy...Cytat Ciągle chodzi mi po głowie pokusa, tak jak kiedyś chciałem całkiem uniknąć sql'a, to teraz chciałbym to utrzymać Jak juz sie uczysz, to rob to porządnie i nie wydziwiaj
w jednej tabeli, nawet wbrew redundancji danych. W końcu to góra 200 filmów, ruch niewielki... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 1 Dołączył: 13.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jak juz sie uczysz, to rob to porządnie i nie wydziwiaj Dobrze, Szefie. Chyba mam jakiś czeski błąd, albo źle myślę:
Chciałem wylistować wszystkie filmy z tabeli filmy, wybierając te pozycje, które w polu "Kategoria" mają wpisaną jedynkę, która ma odpowiadać polu "rowid" też numerek 1. Ale, listuje wszystkie. Pewnie źle rozumiem JOINy, albo mam czeski błąd. Pewnie oba. Naprowadźcie proszę. W sumie to bezsensu to moje zapytanie:) Przecież mogę wylistować z jednej tabeli, wybierając tylko where Kategoria = 1 .... To po co mi ta druga tabela z kategoriami w takim razie? I jak przypisać dwie kategorie do jednego filmu? Błądzę w ciemnościach... wszędzie mrok. ---------------------------------------------------- Dobra, to kumam tak: 1. Druga tabela tylko w celach redundancji. 2. Listuję tylko z jednej tabeli, filmy. Ale nawet wtedy listuje mi wszystkie pozycje:
Ale ja głupi jestem:) Dałem w złym miejscu... teraz kod wygląda tak:
Niestety, nadal nie wiem, jak przypisać dwie kategorie do jednego filmu. Czy dopuszczalne jest w polu tabeli podanie dwóch, trzech wartości, np. [1, 3, 5] ? Ten post edytował arstherapia 5.09.2014, 21:55:29 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 15:33 |