![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 3.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie. Spedzilem na tym forum przegladajac dlugo posty w poszukiwaniu odpowiedzi na moj problem. No i nie znalazlem odpowiedzi.
Wiec czego moj problem dotyczy. Postanowilem przebudowac strone na ktorej znajduje sie dosc duzo artykulow (nie jest to sklep internetowy). W zwiazku z tym ze zaszla potrzeba z poziomu przegladarki dodawania nowym produktow postanowilem zaciagnac do tego MySql. Stanalem na etapie projektowania bazy MySQL, (tak dla info: posiadam konto na home.pl buisness server. Mam tam phpMyAdmin i ostatno przesiadli sie na najnowsze wersje mysql i php.) Strukture tego wszystkiego tak mniej wiecej sobie wyobrazam. Na stronie glownej bedzie menu (zrobione na podstawie bazy) oraz wybor kategorii. Kategorie glowne (dla przykladu): TV, ODTW. DVD, Glosniki, itp. Podkategorie: TV plazmowe, .... odt. dvd, cd, ..... glosniki centralne, efektowe, .... aparaty cyfrowe, analogowe ..... W kazdej z tych kategorii oczywiscie bedzie sie znajdowala firma: (np. ![]() Kazdy produkt bedzie opisany jak ponizej: zdjecie :: krotki opis :: dlugi opis (max 255 znakow) :: ikonki do downloadu (pdf, doc, txt) wszystko to bedzie w bazie (zdjecia nie sa za duze wiec mysle ze sie nie zrobi z niej wielki i ociezaly kolos - chyba ze jakies inne sugestie, moze same linki ...) To sa zalozenia. W phpMyAdmin zalozylem baze danych. Utworzylem trzy tabele. tabela kategorie: idkat int unsigned not null auto_increment primary key nazwakat char(40) not null tabela pod_kategorie: idpod_kat char(13) not null primary key, idkat int unsigned, nazwa_pod char(30) not null produkt: idproduktu int unsigned not null auto_increment primary key idkat int unsigned idpod_kat int unsigned obrazek char(30) tytul char(100) not null opis char (255) down char(20) -- tu beda ikony do plikow [pdf, doc, txt] Powiedzmy ze jeszcze admin do logowania sie w celu dodawania materialu na strone. No i teraz panowie i panie, powiedzcie mi jak ja mam te relacje utworzyc. Niestety w phpMyAdmin nie mam takiej opcji na home.pl. Bardzo bym jeszcze prosil o sugestie czy stworzone powyzej tabele sa w miare poprawne i jak najlepiej tu ustawic relacje (wiele do wiele). Nie prosze o gotowe rozwiazania, bo ciagle "szperam w poszukiwaniu rozwiazan" tylko o jakies sensowne sugestie, pomoc typu "wywal to, dodaj to, ja bym tak to zrobil...." Bardzo dziekuje za wszelkiego rodzaju pomoc. Pozdrawiam serdecznie. Arek. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Takich kilka uwag ode mnie.
Tabela pod_kategorie: idpod_kat zrób polem int not null auto_increment Tabela produkt: jak dla mnie nie potrzebne jest tam pole idkat, wystarczy, że będzie idpod_kat ( oczywiście zakładając, że produkt będzie należał zawsze do jakiejś podkategorii ); Jeżeli to założenie jest błędne, to wtedy to pole jest OK. Obrazki trzymałbym na serwerze, a w bazie tylko nazwy/linki/ścieżki dostępu do nich. Co do relacji ... relacja między tabelą kategorie a podkategorie 1 do wielu ( jedna kategoria moze miec wiele podkategori ) potem w zależności od tego co napisałem powyżej ( czy produkt zawsze będzie należał do jakiejś podkategorii a nie kategorii głównej ) to relacje produkt > podkategoria 1 do 1. No chyba, że planujesz sytuacje, gdzie jeden produkt może należeć do wielu kategorii/podkategorii. Teraz to jakby ja zrobił tę bazę: ![]() Ja bym zrezygnował z dwóch tabel kategoria i podkategoria na korzyść jednej, w której trzymałbym dane na temat całego drzewka kategorii. Coś w ten deseń:
W id_parent przechowywałbyś kategorię nadrzędną. Pozwala to na stworzenie wielu podziałów kategorii. W przypadku gdy przewidujesz sytuację, że jeden produkt może należeć do wielu kategorii to należałoby stworzyć dodatkową tabelę:
No ale to już mocniej rozbudowana baza, która pozwala na pewną dowolność w dodawaniu kategorii oraz produktów do kategorii. Ten post edytował Cienki1980 6.02.2007, 23:32:28 -------------------- 404
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 3.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dziekuje za sugestie w w/w poscie. Zakladam, ze produkt bedzie zawsze nalezal do jednej kategorii i podkategorii, a podkategoria bedzie nalezala do jednej kategorii (ale sie namieszalo) czyli zostane przy relacja jeden do jeden.
Tylko mecza mnie wlasnie te relacje, jak je w praktyce wprowadzic w phpMyAdmin (juz wiem ze musze uzywac InnoDB bo na MYISAM sie nie da). Przypominam ze mam serwer na home.pl |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 01:24 |