База данных за пять минут. Проверка повторного ввода данных |
|
Автор bsv999
|
16.07.2008 г. |
Как известно, проще построить новый дом, чем реконструировать старый. Так и здесь - процесс переделки нашей "базы за пять минут" займёт гораздо бОльшее время, и на него будет затрачено больше нервов и сил. Это вторая статья из цикла База данных за пять минут. Начало публикации - см. База данных за пять минут. Создание .
Анализ таблицыПри работе созданной нами базы данных довольно сложно проконтролировать уникальность вводимых данных. Не хотелось бы дважды вводить описание одного и того же фильма. Обычно видеоматериал классифицируют по названию, стране-производителю и году выпуска. В моей базе классификация будет проводится по следующим полям одновременно (так называемый составной ключ): - Название видеоматериала на оригинальном языке (перевод названия фильма на русский язык может быть неоднозначным. Например, "Hercules Returns" - "Возвращение Геркулеса" и "Геркулес возвращается").
- Формат записи/носитель информации (хочется иногда иметь две версии фильма - на ДВД-9 и HDTV).
- Год выпуска - некоторые фильмы переснимают по несколько раз ("Sabrina", например).
Именно эти поля и будут полями "составного ключа" (или "ключевыми полями"). Перепроектирование таблицы MAIN базы данныхИтак, имеется немного изменённая таблица MAIN со следующими полями (добавлено три поля): Предыдущий вариант таблицы MAIN см. в первой статье - ID - первичный ключ (добавлен автоматически при сохранении)
- TYPE - тип видеоматериала (художественное кино, документальное, мультфильм и т.д.)
- NAME - название видеоматериала
- DESCRIPT - краткое описание
- SCREENSHOT - скриншот (снимок экрана)
- COVER1 - обложка диска 1
- COVER2 - обложка диска 2
- DISC1 - диск 1
- DISC2 - диск 2
- USER - место расположения видеоматериала
- ONAME - название видеоматериала на оригинальном языке (добавлено позже)
- MEDIA - формат записи/носитель информации (добавлено позже)
- RELEASE - год выпуска (добавлено позже)
Примечание: добавленные поля в таблице соответствуют добавленным полям в форме.Переделка таблицы MAIN базы данныхНачинаем переделку таблицы: Примечание: все действия с ключами возможны только на пустой базе.- Переименовываем таблицу MAIN в MAIN1.
- Копируем таблицу MAIN1 и вставляем (только структуру) как новую таблицу MAIN.
- Теперь запускаем правку новой таблицы MAIN - удаляем поле ID, выделяем три последних поля (они у нас - ключевые) и присваиваем им свойство "Первичный ключ" (в контекстном меню правой кнопки мыши).
- Теперь нам надо скопировать данные из старой таблицы MAIN1 в новую таблицу MAIN. Перед копированием надо убедиться, что ключевые поля ONAME, MEDIA и RELEASE не пустые и комбинации этих полей уникальная.
Примечание 1: пустые поля недопустимы в качестве ключевого поля и вызовут ошибку копирования. Примечание 2: повторяющиеся комбинации полей ONAME-MEDIA-RELEASE недопустимы в качестве ключевого поля и вызовут ошибку копирования. Подсказка: Для получения уникальности проще всего заполнить все пустые поля цифрой 0, а поле RELEASE - возрастающими значениями от 000.
- Копируем таблицу MAIN1 и вставляем её в таблицу MAIN в режиме "Добавить данные". Делаем настройку используемых полей (в левом окне поле ID опускаем в самый низ окна).
- Проверяем данные в таблице MAIN.
- Запускаем форму и проверяем данные в форме.
- Удаляем таблицу MAIN1.
Составное ключевое поле готово. Теперь мы не сможем дважды ввести одинаковые значения - база сообщит нам об ошибке. |
Последнее обновление ( 09.09.2012 г. )
|