Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 200
от 13.01.2007, 13:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 400, Экспертов: 41
В номере:Вопросов: 1, Ответов: 2


Вопрос № 69985: Здравствуйте! Есть вопрос. В любой базе данных желательно иметь идентифицирующее поле - ключ. В базе MySQL мы можем создать поле с комбинацией свойств: автоинкремент, неноль и первичный ключ. В итоге все хорошо будет работать. Но есть...

Вопрос № 69.985
Здравствуйте!
Есть вопрос.
В любой базе данных желательно иметь идентифицирующее поле - ключ.
В базе MySQL мы можем создать поле с комбинацией свойств: автоинкремент, неноль и первичный ключ. В итоге все хорошо будет работать.
Но есть другой случай: автоинкремент и уникальное. И тоже все хорошо будет работать. В чем разница?
Отправлен: 08.01.2007, 13:04
Вопрос задал: Valeraorg (статус: 4-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Крюков
Здравствуйте, Valeraorg!
Первичный ключ - это любой столбец (или комбинация столбцов) , значения которого однозначно идетифицируют строку. Поэтому автоинкремент - достаточное условие для уникальности значения. Выставлять лишную проверку на уникальность - только занимать процессорное время. Также в первом варианте лишняя проверка на не ноль - ведь у нас автоинкремент, значит, NULL точно не будет.
---------
Большинство ответов на вопросы в рассылках находится через Яндекс за 1 мин.
Ответ отправил: Евгений Крюков (статус: Практикант)
Ответ отправлен: 08.01.2007, 13:25
Оценка за ответ: 5
Комментарий оценки:
Спасибо!

Отвечает: Архангельский Андрей Германович
Здравствуйте, Valeraorg!
В таблице желательно иметь первичный ключ, особенно если есть связи с другими таблицами.
Первичный ключ должен быть - 1) Уникальный, 2) Not null

А как Вы формируете уникальность ключа не имеет значения. Например, в одном моем проекте уникальный ключ формировался как хеш-функция нескольких полей.
Это было удобнее чем делать уникальный индекс из этих текстовых полей.
Кроме того, это позволяло отследить изменения любого поля с помощью триггеров.
---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 08.01.2007, 16:18


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.38 от 20.12.2006
Яндекс Rambler's Top100

В избранное