Witam, otóż mam tabelę users z relacją do UserInfos (nazwa taka ze względu na konwencje frameworka w którym piszę)
users wygląda standardowo ma pole id,password,email,login - żadnych cudów.
Problem zaczyna się w UserInfos
wygląda to tak: id,user_id,name,value;
ta tabela (UserInfos) przechowuje informacje o użytkownikach, np ich wiek, wzrost, numer buta.
więc przykład
user_id = 3,
name = age
value = 25
+ drugie ustawienie dla tego uzytkownika
user_id = 3,
name = shoe.size
value = 43
Jak najwydajniej zrobić tutaj wyszukiwarkę ludzi? Np ktoś będzie chciał znaleźć wszystkie osoby z wiekiem pomiędzy 20 a 25 i numerem buta 43.
oczywiście możnaby wyszukiwać w ten sposób .... WHERE `name` = 'shoe.size' AND `value` = '43'.
Tylko co jeżeli ktoś będzie chciał wyszukać po rozmiarze buta i wieku ?
Zapytacie pewnie dlaczego nie zrobiłem w tabeli users pól "shoe_size", "age" itd itp?
Bo tych ustawień w przyszłości pojawi się więcej, dużo więcej. Każdy z użytkowników będzie miał bardzo dużo preferencji i będzie można dodawać własne z poziomu strony www.
Pozdrawiam i liczę na jakąkolwiek pomoc.