SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 15.03.2011 22:23:36

Alexis
Участник
Зарегистрирован: 15.03.2011
Сообщений: 4

Помогите с организацией хранения данных

Здравствуйте! Прошу помощи с выбором реализации размещения данных в бд. Может кто сталкивался с таким уже и знает более хорошее решение. У меня есть сл. таблицы:
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 значений...
Как это будет влиять на скорость выполнения запроса если я буду по всем этим полям производить поиск????
И есть ли другое лучшее решение организации размещения такой структуры данных???

Неактивен

 

#2 17.03.2011 01:04:35

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Помогите с организацией хранения данных

Возможно, будет более правильным отдельно хранить сущности и отдельно —
принадлежности сущностей к пользователям. Например:

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));

Так Вы легко сможете добавлять хобби динамически. Впрочем, в поиске это
может не дать сильного ускорения (хотя какое-то ускорение всё-таки даст),
если искать будут по большому количеству критериев (а не только по хобби).

Неактивен

 

#3 18.03.2011 09:14:48

Alexis
Участник
Зарегистрирован: 15.03.2011
Сообщений: 4

Re: Помогите с организацией хранения данных

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-ти..

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson