О проекте
Контакты
Полезные ссылки
Карта сайта
Вход для участников

Базы данных (Base)

База данных за пять минут. Проверка повторного ввода данных Печать
Автор bsv999   
16.07.2008 г.

Как известно, проще построить новый дом, чем реконструировать старый. Так и здесь - процесс переделки нашей "базы за пять минут" займёт гораздо бОльшее время, и на него будет затрачено больше нервов и сил.

Это вторая статья из цикла База данных за пять минут. Начало публикации - см. База данных за пять минут. Создание

Анализ таблицы

При работе созданной нами базы данных довольно сложно проконтролировать уникальность вводимых данных. Не хотелось бы дважды вводить описание одного и того же фильма. Обычно видеоматериал классифицируют по названию, стране-производителю и году выпуска. В моей базе классификация будет проводится по следующим полям одновременно (так называемый составной ключ):

  1. Название видеоматериала на оригинальном языке (перевод названия фильма на русский язык может быть неоднозначным. Например, "Hercules Returns" - "Возвращение Геркулеса" и "Геркулес возвращается").
  2. Формат записи/носитель информации (хочется иногда иметь две версии фильма - на ДВД-9 и HDTV).
  3. Год выпуска - некоторые фильмы переснимают по несколько раз ("Sabrina", например).


Именно эти поля и будут полями "составного ключа" (или "ключевыми полями").

Перепроектирование таблицы MAIN базы данных

Итак, имеется немного изменённая таблица MAIN со следующими полями (добавлено три поля):

Предыдущий вариант таблицы MAIN см. в первой статье 

 

  • ID - первичный ключ (добавлен автоматически при сохранении)
  • TYPE - тип видеоматериала (художественное кино, документальное, мультфильм и т.д.)
  • NAME - название видеоматериала
  • DESCRIPT - краткое описание
  • SCREENSHOT - скриншот (снимок экрана)
  • COVER1 - обложка диска 1
  • COVER2 - обложка диска 2
  • DISC1 - диск 1
  • DISC2 - диск 2
  • USER - место расположения видеоматериала
  • ONAME - название видеоматериала на оригинальном языке (добавлено позже)
  • MEDIA - формат записи/носитель информации (добавлено позже)
  • RELEASE - год выпуска (добавлено позже)
Примечание: добавленные поля в таблице соответствуют добавленным полям в форме.

Переделка таблицы MAIN базы данных

Начинаем переделку таблицы:

Примечание: все действия с ключами возможны только на пустой базе.
  1. Переименовываем таблицу MAIN в MAIN1.
  2. Копируем таблицу MAIN1 и вставляем (только структуру) как новую таблицу MAIN.
  3. Теперь запускаем правку новой таблицы MAIN - удаляем поле ID, выделяем три последних поля (они у нас - ключевые) и присваиваем им свойство "Первичный ключ" (в контекстном меню правой кнопки мыши).
  4. Теперь нам надо скопировать данные из старой таблицы MAIN1 в новую таблицу MAIN. Перед копированием надо убедиться, что ключевые поля ONAME, MEDIA и RELEASE не пустые и комбинации этих полей уникальная.

    Примечание 1: пустые поля недопустимы в качестве ключевого поля и вызовут ошибку копирования.
    Примечание 2: повторяющиеся комбинации полей ONAME-MEDIA-RELEASE недопустимы в качестве ключевого поля и вызовут ошибку копирования.
    Подсказка: Для получения уникальности проще всего заполнить все пустые поля цифрой 0, а поле RELEASE - возрастающими значениями от 000.

  5. Копируем таблицу MAIN1 и вставляем её в таблицу MAIN в режиме "Добавить данные". Делаем настройку используемых полей (в левом окне поле ID опускаем в самый низ окна).
  6. Проверяем данные в таблице MAIN.
  7. Запускаем форму и проверяем данные в форме.
  8. Удаляем таблицу MAIN1.

Составное ключевое поле готово. Теперь мы не сможем дважды ввести одинаковые значения - база сообщит нам об ошибке.

Обсудить на форуме...

Последнее обновление ( 09.09.2012 г. )
 
« Пред.   След. »

Текстовые документы (Writer)

MyOOo.ru, 2008 — 2024. Хостинг предоставлен компанией Netangels