2016-12-12 3 views
0

Редакция: Я создал таблицу в Access, и я пытаюсь добавить поле, в котором пользователь может ввести несколько значений, но которые не заданы в списке. Эти ценности должны уважать определенный формат.Доступ, разрешить mutli не предопределенное значение

Мое текущее решение:

enter image description here enter image description here

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

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

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

ответ

1

Реляционная система баз данных имеет дело со связанными данными. Он использует таблицы , чтобы выразить эти отношения.

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

  • первичный ключ главной таблицы (часто это единственный ID, но он также может быть составной ключ, например, номер компании плюс идентификатор сотрудника для того, чтобы идентифицировать сотрудника)
  • значение четырехзначный

Затем добавьте contraint в столбец значения для обеспечения его четыре цифр всегда.

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

+0

Вы правы, вы бы не создали таблицу из миллиардов всех разрешенных значений. Но у вас все равно будет таблица для значений * used *, как указано. В примере с вашим банком: вы не сохранили бы строку, содержащую номера учетных записей, разделенные запятыми, в записях клиентов (ваше «текущее решение»), но у них есть одна таблица для клиентов и одна для учетных записей клиентов. Последний будет содержать номер клиента и номер счета. –

+0

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

+0

Спасибо, Торстен, я постараюсь сделать это по-вашему. Вы правы, мой банковский пример не был таким хорошим, поскольку у вас только одна учетная запись на одного клиента. – Seb