Опции пользователя в другой таблице: как лучше проверить, есть ли опция? - PullRequest
0 голосов
/ 12 мая 2009

У меня есть несколько вариантов, которые пользователь может иметь, в основном для проверки своего присутствия на сайте.

Таблицы такие:

Пользователи:

id=1
username=stackoverflow
password=oSKAJMMS;
address=xyz
...

Параметры:

user_id=1
option=AD3

user_id=1
option=AC1

В какой-то момент мне нужно проверить, есть ли у него конкретный параметр (например, AD3, AC1 и т. Д.) В таблице «параметров», помня, что пользователь без параметров просто не существует в таблице «параметров».

Какая лучшая практика для этого? Я думал о JOIN, но каждый раз, когда я читаю stackoverflow, я нахожу более простые и эффективные методы, поэтому я спрашиваю вас, что мне делать!

1 Ответ

2 голосов
/ 12 мая 2009
SELECT  *
FROM    users u
WHERE   EXISTS (
        SELECT  1
        FROM    options o
        WHERE   o.user_id = u.id
                AND o.option = 'AC1'
        )

Убедитесь, что у вас есть индекс options (user_id, option)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...