Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019

В следующих разделах показано, как были разработаны связи таблиц базы данных. Имена объектов предоставляются, чтобы их можно было легко изучить в базе данных Northwind 2.0 Starter Edition.

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

Схема связей базы данных

На этой схеме показаны все шесть таблиц. На схеме линии между таблицами определяют связи между ними. 1 и символ бесконечности () в концах линий представляют одну сторону отношения (например, одного клиента) и многостороннее отношение. Например, один клиент отправляет много заказов. Дополнительные сведения см. в разделе Руководство по связям с таблицами.

Следующие принципы применяются к таблицам в Northwind 2.0 Starter Edition, а также к таблицам в целом.

Первичные ключи      Уникальное определение каждой записи в таблице. Все таблицы имеют первичный ключ. На схеме связей символы ключей идентифицируют эти первичные ключи. Соглашения об именовании первичных ключей именуются для таблицы, в ней они находятся, например TableNameID. 

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

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

Уникальные индексы      Другие поля в таблицах также могут иметь собственные уникальные индексы, например OrderStatus.StatusCode. Нелогично иметь два состояния заказа в таблице OrderStatus с одинаковым кодом, хотя StatusCode сам по себе не является первичным ключом. Уникальный индекс указывает Access, чтобы предотвратить дублирование значений в этом поле.

Неуниковые индексы      Таблицы также могут иметь индексы для ускорения поиска и сортировки по этим полям, например Orders.OrderDate. Многие заказы могут быть размещены в один день, и часто требуется выполнить поиск и сортировку по датам заказа. Для ускорения поиска и сортировки в этом поле есть неуникальный индекс.

Имена таблиц и полей    Вы можете назвать вещи любым способом, но согласованность важна. Рекомендуется, чтобы имена таблиц и полей были одним или несколькими словами без пробелов между ними и без специальных символов, таких как косая черта (/), знак фунта (#) или процент (%). Например, используйте OrderDate, но не Order Date; используйте OrderNumber или OrderNo, но не Order#. 

CamelCase    Прописные буквы выделяют отдельные части имени, например OrderDate, но не Orderdate или orderDate.

Обязательное значение    Этот принцип определяет важность бизнес-правил для приложения. В некоторых ситуациях требуются значения или даже определенные значения в некоторых полях. Например, что такое заказ, не зная клиента, который его разместил? Это означает, что CustomerID является обязательным полем для таблицы Orders. 

Вычисляемые поля      Access поддерживает вычисляемые поля в таблицах, например поле Employees.FullName. Вы можете предпочесть создавать вычисляемые поля в запросе, а не в таблице.

Поля вложений      Access поддерживает поля вложений, например Employees.Picture, в котором хранится изображение сотрудника. Вложения могут хранить изображения, документы, сообщения электронной почты и другую двоичную информацию. Вложения занимают много места в базе данных. Вместо этого более эффективно хранить вложения на файловом сервере.

Многозначные поля    Как следует из названия, многозначные поля хранят одно или несколько значений в одном поле, например Employees.Title. Мы рекомендуем использовать их с осторожностью, особенно если вы хотите обновить базу данных. Большинство других систем баз данных не имеют их, поэтому для этого потребуется много повторной работы. 

Дополнительные сведения о типах данных см. в статье Общие сведения о типах данных и свойствах полей.

В этом разделе рассматриваются наиболее важные функции каждой таблицы. Чтобы просмотреть структуру таблицы, выберите ее в области навигации, щелкните ее правой кнопкой мыши, выберите Конструктор или Выберите Пункты "Инструменты базы данных > связи", а затем щелкните правой кнопкой мыши объект таблицы. Дополнительные сведения см. в статье Общие сведения о таблицах.

Важно: Избегайте использования зарезервированных слов, которые могут вызвать конфликты именования. Дополнительные сведения см. в статье Сведения о зарезервированных словах и символах Access.

Таблица "Сотрудники"

В этой таблице хранятся сведения о сотрудниках Northwind. 

Поля

Описание

FirstName, LastName

Оба имени являются обязательными, и в Northwind они должны быть уникальным сочетанием. В структуре таблицы при открытии диалогового окна Индексы вы увидите, что firstName + LastName имеют уникальный индекс. Так как FirstName и LastName индексируются уникальным образом, в таблице Northwind не могут храниться два сотрудника с одинаковыми именами. В других ситуациях можно использовать другое бизнес-правило.

FullNameFNLN, FullNameLNFN

Просмотрите свойство expression вычисляемых полей, чтобы узнать, как Access объединяет значения в вычисляемых полях. Чтобы включить средний инициал, добавьте его в существующее выражение с соответствующим интервалом между компонентами.

Поля телефона

Бизнес-правило для телефонов заключается в том, что предпочтения сотрудников более актуальны, чем тип службы. Поэтому используются первичные и вторичные номера телефонов, а не мобильные, офисные, домашние и т. д.

Приветствие

Приветствие — это поле "Короткий текст". Чтобы проиллюстрировать функцию многозначных полей в Access, это поле со списком с редактируемым списком предварительно определенных значений. Короткие статические списки часто являются кандидатами на многозначные поля, так как они не сильно изменяются, если когда-либо.

JobTitle

JobTitle — это еще одно обязательное поле.

Таблица Customers

В этой таблице хранятся сведения о клиентах Northwind. 

Поля

Описание

CustomerName

Клиенты Northwind — это предприятия, и требуется имя клиента. Однако, в отличие от имен сотрудников, он не однозначно индексируется, что позволяет двум или более клиентам иметь одно и то же имя.

PrimaryContactFirstName, PrimaryContactLastName, PrimaryContactJobTitle

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

BusinessPhone

Northwind требует только один номер телефона для каждого клиента, хотя это исключает возможность записи нескольких номеров телефонов для клиентов или контактов от клиентов. В реальных ситуациях к контактным данным обычно применяются более сложные бизнес-правила.

Адрес, город State, ZIP

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

Примечания

Поле "Заметки" — это тип данных "Длинный текст", в котором хранится до 1 ГБ текста. Это позволяет вводить подробные комментарии о клиентах для использования в последующих ситуациях заказа.

Таблица Orders

В этой таблице хранятся сведения о заказах Northwind. 

Поля

Описание

OrderDate, ShippedDate, PaidDate

Для заказов требуется три даты. Все они имеют тип данных даты и времени, но имеют два формата. OrderDate содержит дату и время, так как вы можете быть заинтересованы в анализе объема заказов для разных частей дня. Для двух других дат требуется только дата. Правило проверки таблицы для ShippedDate и PaidDate гарантирует, что эти даты не находятся перед OrderDate.

OrderStatusID

Состояние заказа указывает, где находится заказ в рабочем процессе Northwind. Заказы проходят четыре этапа: новое — > выставлено — > отправлено — > закрыто.Внешний ключ для текущего Объекта OrderStatus использует OrderStatusID из таблицы подстановки OrderStatus. Использование таблицы подстановки состояния гарантирует, что заказу могут быть назначены только четыре предварительно определенных состояния.

Таблица сведений о заказах

В этой таблице хранятся сведения о заказе Northwind. 

Поля

Описание

Orderid

Каждый элемент строки в таблице OrderDetails должен принадлежать одному заказу в таблице Orders. OrderID — это внешний ключ, определяющий этот заказ. Как отмечалось ранее, один порядок, содержащий один или несколько строк, иллюстрирует связь "один ко многим".

Productid

Каждая запись в таблице OrderDetails содержит ProductID для заказанного продукта. ProductID — это внешний ключ в таблице OrderDetails, определяющий продукт в этом порядке. Это также отношение "один ко многим".

OrderID+ ProductID

Как вы видели в таблице Employees, несколько полей могут иметь уникальный индекс. Уникальный индекс orderID+ProductID в таблице OrderDetails гарантирует, что каждый заказ содержит продукт только один раз. При открытии страницы свойств Indexes на ленте вы увидите этот уникальный индекс.

Таблица Products

В этой таблице хранятся сведения о продуктах Northwind. 

Поля

Описание

ProductCode

Помимо первичного ключа, ProductID, продукты Northwind имеют удобный для человека, уникально индексированный код продукта. Сотрудники обычно ссылаются на коды продуктов, а не на значения первичного ключа. Код продукта представляет собой составное значение, состоящее из обозначения Категории и числа, например B-1 для "Напиток", продукт 1.

Название продукта, Описание продукта

Помимо коротких текстовых названий продуктов, к продуктам применяется длинное текстовое описание. Это значение можно использовать в описании каталога или для ответа на вопросы клиентов.

UnitPrice

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

См. также

Northwind 2.0 Starter Edition

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.