Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте! Прошу помощи с выбором реализации размещения данных в бд. Может кто сталкивался с таким уже и знает более хорошее решение. У меня есть сл. таблицы:
users:
user_id
name
hobby Set("hobby1","hobby2",..."hobby10")
music Set("pop","rock",..."folk")
wearstyle Set("style1","style2",...."style3")
....
colN Set("val1",... "valN")
У меня есть около 20 полей с типом данных Set, И каждое может содержать в среднем 3-10 значений...
Как это будет влиять на скорость выполнения запроса если я буду по всем этим полям производить поиск????
И есть ли другое лучшее решение организации размещения такой структуры данных???
Неактивен
Возможно, будет более правильным отдельно хранить сущности и отдельно —
принадлежности сущностей к пользователям. Например:
CREATE TABLE hobbies (id INT KEY AUTO_INCREMENT, name VARCHAR(20), ...);
CREATE TABLE user_hobbies (user_id INT NOT NULL, hobby_id INT NOT NULL, PRIMARY KEY (user_id, hobby_id));
Так Вы легко сможете добавлять хобби динамически. Впрочем, в поиске это
может не дать сильного ускорения (хотя какое-то ускорение всё-таки даст),
если искать будут по большому количеству критериев (а не только по хобби).
Неактивен
paulus написал:
Возможно, будет более правильным отдельно хранить сущности и отдельно —
принадлежности сущностей к пользователям. Например:
CREATE TABLE hobbies (id INT KEY AUTO_INCREMENT, name VARCHAR(20), ...);
CREATE TABLE user_hobbies (user_id INT NOT NULL, hobby_id INT NOT NULL, PRIMARY KEY (user_id, hobby_id));
Так Вы легко сможете добавлять хобби динамически. Впрочем, в поиске это
может не дать сильного ускорения (хотя какое-то ускорение всё-таки даст),
если искать будут по большому количеству критериев (а не только по хобби).
Спасибо большое за ответ! Да, критериев будет около 15-ти..
Неактивен