Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql][php]zaprojektowanie tabeli
Forum PHP.pl > Forum > Przedszkole
Gaw
witam,
od razu przepraszam, jesli zamiescilem temat w zlym dziale,

mam sklep osCommerce z produktami spozywczymi.
do kazdego produktu chce zeby byla tabelka ze skladem (ilosc bialka, weglowodanow etc.)
ja myslalem w ten sposob, zeby zrobic osobna tabele o takiej strukturze

  1. CREATE TABLE `products_sklad` (
  2. `sklad_id` int(11) NOT NULL AUTO_INCREMENT,
  3. `products_id` int(11) NOT NULL DEFAULT '0',
  4. `sklad1` text collate latin1_general_ci NOT NULL,
  5. `sklad2` text collate latin1_general_ci NOT NULL,
  6. `sklad3` text collate latin1_general_ci NOT NULL,
  7. PRIMARY KEY (`sklad_id`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 COLLATE=latin2_general_ci;


taka prosta struktura odpowiadalaby by gdyby sklad1 to nazwa skladnika, sklad2 to ilosc skladnika, a sklad3 odpowiadalby %RDZ (realizacja dziennego spozycia).
sklad_id to klucz, a products_id jest polaczone z products_id z danymi z tabeli produktow.
wyszukiwanie potem nastepuje wg. products_id w tabeli products_sklad

no ale co w przypadku gdybym chcial miec wiecej kolumn.
moje rozwiazanie jest proste jednak przy kilku tysiacach rekordow wyszukiwanie moze juz nie byc takie szybkie.

jesli ktos ma jakies propozycje prosze o odpowiedz.

z gory dziekuje
lopez86
żeby to szybko działało a jednak bez zbednych zadań to czy nie prościej umieścić skład w jednej kolumnie ? potem explodem po czyms tam co sobie wybierzesz , bo jesli chcesz mieć każdy w osobnej kolumnie to przy dodawaniu kazdego produktu trzebaby sprawdzać ilość kolumn i w razie czego dodawań nową oczywiście jako NULL zeby pozostałe mogły byc puste. A kilka tysięcy rekordów to nie dużo, chyba że chciałbyś wyszukiwanie z like wtedy wiadomo że powinno być w osobnej kolumnie z indeksem jednak wtedy musisz zrobicz automatyczne dodawanie kolumn. To dosyć proste myslę że sobie poradzisz. Pozdrawiam.
Gaw
tak sobie myslalem i doszedlem do wniosku ze mozna by to zrobic w plikach tekstowych.
kolumny rodzielone tabulatorem albo |. przerobilem takze jakas funckje co znalazlem na necie zeby mi wypisywalo z pliku.

wszystko ok, ale tylko wtedy gdy mam dane w prostej postaci np. "białko 20g 15%"
...ale np. gdy mam skladniki ze spacja to sie sypie nie wiem czemu. sadsmiley02.gif
qwaq
prawdopodobnie skrypt rozdziela calą linię po spacjach

proponuje skladniki porozdzielać *(gwiazdką) i potem w odpowiednim momencie użyć explode("*", ....);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.