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