1

Моя база данных в Access указана по классификации (например, кино, пресса (локальная), публикация (локальная) и т.д.).

Для классификации в кинотеатрах я хочу иметь колонку под названием «количество экранов в кинотеатре». Однако мне не нужен этот столбец для других классификаций.

Как создать столбец, который появляется только для кинотеатров? Я не хочу, чтобы колонка была просто заполнена н / д для не кинематографической классификации.

1 ответ1

3

То, о чем вы спрашиваете, называется нормализацией базы данных. Это разработчики базы данных процесса проектирования, чтобы исключить избыточные или противоречивые данные из БД. В вашем случае наличие поля «Количество экранов» для записей, не имеющих экранов, не имеет смысла, следовательно, необходимо нормализовать.

Чтобы решить вашу проблему, вам нужно добавить в свою базу данных вторую таблицу и поместить туда поле. Затем вы связываете основную и вторую таблицы с уникальным идентификатором поля. Наконец, вы создаете запись только во второй таблице, если запись в основной таблице требует дополнительных подробностей.

Вот краткий обзор этого процесса:

  1. Добавьте поле в основную таблицу с типом Autonumber. Назовите это CinemaID. Пусть Access использует это как первичный ключ таблицы.
  2. Создать другую таблицу. Возможно, назовите это Cinema_Detail.
  3. В новой таблице добавьте поле типа Long. Назовите его CinemaID (используйте то же имя, что и поле первичного ключа в первой таблице). Не позволяйте Access сделать это первичным ключом. Сообщите, что доступ к полю обязателен, и значения в этом поле должны быть уникальными (в противном случае в этой таблице может быть несколько записей, соответствующих одной записи в основной таблице, что противоречит вашему запросу).
  4. Добавьте еще одно поле для количества экранов.
  5. В диспетчере взаимоотношений с базой данных создайте отношение «один ко многим» между полями CinemaID в двух ваших таблицах.

Теперь, чтобы указать, сколько экранов имеет кинотеатр, добавьте запись в таблицу Cinema_Detail и укажите CinemaID для соответствующей записи в основной таблице вместе со значением количества экранов.

Дополнительная информация

Если вам интересно

Это невозможно сделать то , что вы спрашиваете непосредственно в основной таблице. В Access поля либо существуют в таблице, либо их нет. Там нет середины. Доступ - это механизм базы данных, и поэтому он придерживается правил правильного проектирования базы данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .