Совет дня


OOo может подключаться к внешним базам данных через источники данных

Опросы

Какую сборку OpenOffice.org вы используете сейчас?

Нашли опечатку?

 
Выделите ошибочный текст, нажмите CTRL+ENTER и отправьте нам сообщение
 
База данных за пять минут. Проверка повторного ввода данных Печать E-mail
Автор 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.

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

 

Последнее обновление ( 18.08.2008 г. )
 

Добавить комментарий

Уважаемые гости сайта! Мы не оказываем поддержку пользователей в формате комментариев и не отвечаем на вопросы по использованию OpenOffice.org, заданные в комментариях. Если Вам требуется такая поддержка, воспользуйтесь формой для сбора вопросов по OpenOffice.org.
Ваш комментарий будет опубликован после просмотра модератором


Защитный код
Обновить

« Пред.   След. »