Дополнительный индекс для списка клиентов - PullRequest
0 голосов
/ 23 сентября 2010

Я создаю базу данных клиентов и дел в Access 2003. В таблице родительского клиента есть поля для имен клиентов, компании (если есть), статуса (список значений), дополнительной заметки (типа текста или заметки) и поле переключателя Y / N для нашего списка рассылки. ПК в возрастающем AutoNumber. Следуя совету по нормализации из другого потока, адреса и номера телефонов получат свои собственные таблицы, например:

tbl_Client

 tbl_Address
    tbl_AddressType
 tbl_Phone
    tbl_PhoneType

(tbl_Client будет ссылаться на tbl_Address и tbl_Phone через соединительные таблицы, но я не знаю, как это представить.)

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

Итак, вот мой вопрос: лучше ли индексировать поле «Примечание», не допуская дубликатов, или просто принять, что AutoNumber ClientID будет единственным уникальным значением?

(Конечно, этот вопрос основан на предположении, что вся вышеупомянутая структура не является неисправимой. Если это так, пожалуйста, не стесняйтесь выражать свой ужас.)

1 Ответ

0 голосов
/ 28 сентября 2010

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

Ваш ПК должен однозначно идентифицировать каждую строку. Я не понимаю требования для второго уникального поля.

* Единственный другой гарантированный уникальный столбец в tbl_Client - это поле memo - могут появиться фамилии, и у нас может быть более одного клиента в данной компании. *

Не индексируйте памятное поле только для того, чтобы у вас было второе уникальное поле.

...