Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Два поля UNIQUE
 
 автор: Хулиган   (26.02.2010 в 16:11)   письмо автору
 
 

Добрый день.
Подскажите, как разрулить такую ситуацию:
В таблице 2 поля уникальные: field1 и field2. Оба varchar.
У записи могут быть задействованы как оба поля, так и одно из двух (любое).
В случае если задействованы оба, проблем никаких.
А вот если задействовано только одно (например field1), о что делать со вторым полем field2?
Если оставить его как NULL, то нарушается уникальность field2, т.к. записей с пустым field2 может быть несколько. Если генерить некий хэш на основе field1 (например CRC) и сохранять его как field2, то с уникальностью проблем не будет, но появляется куча накладных расходов (при вставке -генерация хэша, при запросах нужно как-то определять, хэш это или нет, и если хэш, то не выводить его, дабы не смущать юзера непонятными данными)
Что можно придумать в таком случае?
Спасибо

  Ответить  
 
 автор: Trianon   (26.02.2010 в 20:10)   письмо автору
 
   для: Хулиган   (26.02.2010 в 16:11)
 

NULL (любое число таких NULL) не нарушает уникальность поля UNIQUE.
В отличие от PRIMARY KEY (которое , как известно, NULL быть не может по определению)

  Ответить  
 
 автор: Хулиган   (27.02.2010 в 11:27)   письмо автору
 
   для: Trianon   (26.02.2010 в 20:10)
 

Ну если нулл не подпадает под UNIQUE, то и проблем нет.
Спасибо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования