Дизайн таблицы, когда одна таблица будет ссылаться на несколько таблиц - PullRequest
0 голосов
/ 02 апреля 2011

У меня есть база данных, над которой я работаю над проектированием с использованием Access 2007, и мне интересно, как лучше всего выполнить следующее:

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

  1. Травма
  2. Обработка
  3. Счет
  4. Оплата

Я хочу, чтобы для каждой из этих записей в таблице было ноль, одна или несколько Notes записей.

Очевидно, я мог бы сделать это:

  1. Уведомления о травмах
  2. Обработки лечения
  3. Счета-фактуры
  4. PaymentNotes

Но я бы предпочел сделать это:

  1. Примечания

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

  1. Примечания
  2. NotesLookup

Так что яможет иметь ...

  1. Травма
    • ТравмаID ...
  2. Лечение
    • TreatmentID ...
  3. Счет
    • InvoiceID ...
  4. Оплата
    • PaymentID
  5. Примечания
    • NotesID
    • Примечание
  6. NotesLookup
    • TableName
    • ID
    • NoteID *

Это лучший способ сделать это в Access?Есть ли лучший / более естественный способ, особенно тот, который позволяет мне полагаться на встроенный способ, которым Access будет обрабатывать сохранение / разыменование (поэтому мне не нужно кодировать решение VBA)?

Полагаю, я мог бы исключить таблицу NotesLookup и объединить TableName и ID в Notes.На данном этапе мне просто интересно, как я собираюсь сохранить эту информацию и как я буду разыменовывать при просмотре.

Ответы [ 2 ]

3 голосов
/ 02 апреля 2011

Сделать в таблице заметок второе поле для типа записи.Если вам нужна разборчивость в эффективности БД, просто используйте INJ, TRT, INV, PAY.Нет таблицы поиска не требуется.Это вполне адекватно.

0 голосов
/ 02 апреля 2011

Используйте «очевидный» подход из 4 таблиц заметок:

  1. Примечания травмы
  2. Обработки примечания
  3. Примечания счета
  4. PaymentNotes

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

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

Кроме того, если требуется изменить какую-либо из таблиц заметок (дополнительные данные, которые должны быть записаны с каждой заметкойнапример, определенный тип), изменение не будет влиять на другие типы заметок.

...