Нужен ли мне один или два индекса уникальных ключей для этой таблицы? - PullRequest
0 голосов
/ 07 декабря 2008

Я пытаюсь создать таблицу Users, которая имеет только регистрации OpenId, точно так же, как StackOverflow.

Я храню в таблице

  • Идентификатор OpenId (их логин)
  • Псевдоним (отображаемое имя для показа публике)
  • Некоторые другие вещи openId

Итак ... Я хочу убедиться, что в системе есть только ОДИН пользователь, имеющий идентификатор openId и только один псевдоним.

Конечно, я могу изменить свой псевдоним в любое время. Я также могу изменить свой идентификатор openId в любое время. Мне нужно убедиться, что они уникальны / существуют только один раз.

ТАК ... Я создаю ДВА уникальных индекса ключа для таблицы или один уникальный индекс ключа с обоими полями в ней?

Приветствия:)

Ответы [ 2 ]

1 голос
/ 07 декабря 2008

По одному на каждого из них.

Если вы создадите только одного, содержащего оба, у вас может быть - например, два пользователя с одинаковым псевдонимом, если у них два разных OpenID.

Тем не менее:

  • Я бы посоветовал вам создать одну таблицу пользователей и другую таблицу OpenID, которая позволяет пользователям связывать более одного OpenID со своей учетной записью. Допустим, у них есть OpenID в Yahoo и еще один в MyOpenID. Если - по какой-либо причине - Yahoo решит отключить свою службу OpenID, человек все равно сможет войти в систему с помощью своей учетной записи MyOpenID. Ну, до тех пор, пока он зарегистрировал этот идентификатор в своей учетной записи ранее.
1 голос
/ 07 декабря 2008

Сделайте два уникальных ключа. В противном случае к одному и тому же openid может быть привязано более одного пользователя.

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