2012-08-09 3 views
1

У меня есть таблица рассылки электронной почты. Существует ключ активации для каждого пользователя, который подписывается. Ключ активации сначала создается при регистрации. Каждый ключ уникален.Уникальное значение Mysql или пустая строка

Как только пользователь подтвердит регистрацию, это строка emptry в базе данных.

Есть ли способ создать уникальный контур, если в поле есть нуль.

Другими словами, допустимы все значения, если не единственные или уникальные строки, которые являются уникальными.

Я установил уникальный и допустил null, но это не сработает. Я не могу ввести нулевые и уникальные значения, т. Е. Null несколько раз, когда установлено значение null уникальным

ответ

0

Нет, вы не сможете создать такое уникальное ограничение, потому что уникальное ограничение - это просто уникальные и несколько строк с NULL или пустая строка будут дублированными строками. Тем не менее, я бы порекомендовал вам не пустым из этого столбца и скорее использовать логическое поле, которое указывает, что регистрация была подтверждена - это намного более прямолинейно, а затем вы можете использовать уникальное ограничение в этом поле.

+0

Лучше использовать перечисление или логическое значение ?, а также в таблице подписки. У меня есть идентификатор facebook и одно поле, пользователь может не всегда подписаться на фейсбук, но это должно быть уникальным - снова то же самое может случиться, в этом случае я разделяю и создаю соединение, т. е. сохраняю уникальное соединение для facebook id –

+1

@MatthewChambers - мои извинения, с MySQL вы можете иметь несколько значений NULL внутри ключа UNIQUE. Поэтому, пока вы устанавливаете значение в NULL, вы все равно можете поместить в эти поля ключ UNIQUE, но вы ** не можете ** установить их в пустую строку. –

+0

Что лучше всего подходит Mike –

Смежные вопросы