Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Duża ilość cech danej kolumny
Forum PHP.pl > Forum > Bazy danych > MySQL
rafalp
Co sądzicie o takim rozwiązaniu problemu zapisu dużej ilość wariantów w kolumnie:

BAZA np. produkty
id
nazwa
cechy > VARCHAR(255)


cechy są zapisywane z duzej ilości pól checkbox czyli np. kolor, kształt, inne warianty (każdy wariant posiada swoje ID liczbowe i nie wykluczają się wzajemnie)
ale zamiast serializacji tych wartosci w bazie, zapisywać to tak:

taki zapis w bazie cechy >> np. "|1|23|43|25|22|7|"

po to aby mozna było wyszukiwać po tych cechach zastosować takie zapytanie

  1. SELECT * produkty WHERE cechy LIKE "%|10|%" AND cechy LIKE "%|12|%" AND cechy LIKE "%|25|%"
itd

Macie inne pomysły jak takie coś fajnie rozwiązać czy raczej tylko to trzeba zrobić z osobną tabelą produkty_cechy?
mmmmmmm
Osobna tabela. Przedstawione przez ciebie zapytanie jest bardo nieoptymalne.
bpskiba
tabela produkt(id_produkt, nazwa,.....)
tabela cechy(id_cechy, nazwa)
tabela cechyProduktu(id_cechyProduktu, id_produkt, id_cechy, wartosc)
rafalp
No tak ale szukałem jakiś alternatyw..
chociażby jakiegoś matematycznego sposobu wyliczenia globalnej wartości z checkboxów (coś jak hash) tyle wynik moze zawierać jeszcze wartości które nie zostały dodane a mogą się znaleźć ale nie muszą.
wiiir
Cytat(rafalp @ 2.02.2013, 16:37:36 ) *
No tak ale szukałem jakiś alternatyw..


To zapisuj tego stringa w pliku, a jak chcesz na bazie to korzystaj z jej relacyjności smile.gif
Po co sobie robić pod górkę
Tym bardziej ze ciezko korzystać z indexów po like-u jak masz takie wartosci


bpskiba
Z bazodanowego punktu widzienia to nie jest właściwe, ale skoro już kombinujesz to:
checkboxy mają dwa stany więc operatory binarne...
np ciąg 11010 może znaczyć (od końca) "
pierwszy nie zaznaczony
drugi zaznaczony
trzeci nie zaznaczony
czwarty zaznaczony
piąty zaznaczony

Mysql posiada binarne typy danych

Jakiś pomysł to jest, ale ja się pod nim nie podpisuję
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.