![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cześć
Jak najlepiej zarządzać zdjęciami w bazie danych? Powiedzmy, że chodzi o sklep, w którym są produkty poukładane w różnych kategoriach. Każdy produkt może mieć zdjęcia (albo ulotki pdf). Oczywiście produkt ma też opis, nazwę. Jak zaprojektować taką bazę w której każdy produkt może mieć różną liczbę zdjęć? Wymyśliłem sobie takie proste rozwiązanie tabela zdjecia PRODUCT_ID | FOTO_NAME i jeśli produkt ma kilka zdjęć to kilka razy pojawi się jego id w tej tabeli ale różne będą nazwy zdjęć. Jest jeszcze sprawa kolejności zdjęć. Jedyne na co wpadłem to dodatkowa kolumna ORDER. Pobierałbym nazwę zdjęć dla danego PRODUCT_ID i sortował według kolumny ORDER. Ale może macie jakiś lepszy pomysł? I na koniec, czy zdjęcia trzymać w folderze danego produktu, czy jakoś inaczej to poukładać? Teraz mam folder BASE/XXXX i każdy produkt ma swój własny folder (taki jak PRODUCT_ID). Tylko, że jeśli produkty mają takie samo zdjęcie to musiałbym je mieć powtórzone w każdym folderze - spory minus. Jak to rozplanować, żeby było lepiej. pozdro |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
No się rozkręciłem (IMG:style_emoticons/default/smile.gif)
1 Właśnie nie wiem jak założyć klucz główny na dwie kolumny? Przy definicji w obu kolumnach pisze PRIMARY KEY? 2 Czyli rozróżniasz kategorie od produktów? Ja do tej pory tego nie robiłem. Stosowałem drzewiasta strukturę do produktów (produktem też była kategoria). Mówisz, że lepiej zrobić tabelę category( id, name, parent_id ), tabelę product_category( product_id, category_id) i oczywiście tabelę products(id i inne) (IMG:style_emoticons/default/questionmark.gif) Faktycznie jest w tym logika. Trochę mi się skomplikują zapytania, ale chyba tak będzie lepiej (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) ? 3 Spokojnie baza jest oparta o SQL. Ale niektóre z produktów mają jakieś tabelaryczne opisy dostarczane w plikach excela. I niestety muszą być na stronie. Stąd moje zmagania z kolumnami w excelu. Dostaje plik xls/csv i szefuńcio chce go widzieć jako tabelkę na stronie. Ale za tydzień przybiega, że może by zamienić kolumny. Albo dodać coś do tej tabeli. Rozumiesz? 4 Ja właśnie się waham, teraz używam polskich (bez ą, ę i innych) nazw i nawet mi pasuje. Ale co jakiś czas myślę czy nie przejść na anglojęzyczne nazwy. 5 PRODUCT (ID, NAME, TYPE) CATEGORY (ID, NAME) PRODUCT_CATEGORY (PRODUCT_ID, CATEGORY_ID) Ja staram się o to aby nazwy kolumn były wszędzie takie same: PRODUCT (PRODUCT_ID, NAME, TYPE) CATEGORY (CATEGORY_ID, NAME) PRODUCT_CATEGORY (PRODUCT_ID, CATEGORY_ID) Ale nie wiem czy to nie przesada, jak uważasz? A z tym tabela_kolumna, czy kolumna_tabela to zawszę się mylę i nigdy nie wiem czy mam PRODUCT_CATEGORY czy CATEGORY_PRODUCT. pozdro edit 2 Po chwili zastanowienia mam poważne wątpliwości co do sensu rozróżniania produktów i kategorii. Oczywiście stworzenie struktury w osobnej tabeli jest dobre i kolumna parent_id powinna być tylko tam a nie w głównej tabeli z produktami. Ale jaki jest sens rozdzielania produktów od kategorii? Widzę natomiast już jedną wadę, przy drzewkach IP albo podobnych strukturach nawigowanie po dwóch tabelach jest trudniejsze. Np chce wypisać wszystkich przodków danego produktu (coś w rodzaju adresu IP) to mając nierozróżnialne produkty i kategorie zrobię to łatwo. A jeśli je rozróżniam, to najpierw muszę pobrać adres IP kategorii i potem dokleić id produktu. Niby niewielka komplikacja ale jednak. Jaki zatem zysk z tego rozdziału? Przecież i tak kolumny będą identyczne w obu tabelach ( name, description ). I będzie trzeba zrobić podobne tabele łącznikowe product-img, category-img, product-pdf, category-pdf. Może ja ślepy jestem ale strasznie się zagęści liczba podobnych tabel. Warto? pozdro btw a znak myślnika jest dozwolony w nazwach tabel/kolumn we wszystkich bazach SQL? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 17:03 |