Создание реляционных таблиц в Ms Access - PullRequest
0 голосов
/ 11 мая 2018

Я должен изменить свой первый вопрос на следующий:

У меня есть 3 таблицы:

Клиенты, Пол, Раса

Клиенты:

ClientID long integer
GenderID long integer
Gender   short text
RaceID   long integer
Race     short text

Пол:

GenderID long integer
Gender   short text

Раса:

RaceID  long integer
Race    short text

Что я должен сделать, чтобы иметь возможность изменять данные в основной таблице клиентов - чтобы они были изменены в соответствии ск содержимому таблиц Race / Gender

Например:

Таблица Gender:

GenderID  Description
       1  Male
       2  Female

Таблица клиентов:

ClientID GenderID  Gender  DOB
      11       2   Female  1/1/1977
      12       2   Female  1/2/1970
      13       1   Male    1/4/1969

Итак, если яизменили бы, например, ClientID "13" Gender на "Female" вместо текущего "Male", чтобы GenderID автоматически изменялся на "2"?(И никакой другой номер не будет разрешен для этого GenderID)

Или - если бы я изменил ClientID с 1 на 2, я бы хотел, чтобы пол был изменен на «Женский»

Спасибоопять 1030 *

1 Ответ

0 голосов
/ 11 мая 2018

Вы не должны использовать оба поля символов, Race, и поле внешнего ключа, RaceID, в своем проекте схемы: вы должны использовать только последнее, RaceID.

Вы не должны, and-ddd, вам не нужно.

Ваши отчеты и т. Д. Будут основаны на запросе, который JOINsко всем трем таблицам - отображение Race.Race значения ("White"), но никогда (бессмысленно ...) RaceID целое число.

Ваши поля ввода будут комбинированными, которыезапрос (скажем) таблица Race для поиска возможных значений, привязка к полю RaceID.

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

Вы должны также использовать ограничения ссылочной целостности, чтобы гарантировать, что Clients.RaceID, если это не NULL,должно быть значением в таблице Race.

...