2011-02-08 2 views
0
  1. Первый вопрос

Я следующие лица: Формы, которые могут иметь некоторые параметры (но не обязательно), форма имеет таблицы. В одном случае (если форма не имеет параметров), я знаю, какие таблицы соответствуют форме, в другом случае (если форма имеет параметры, которые пользователь выбирает), я решаю, какие таблицы загружаться в зависимости от выбранных параметров.
Как я могу хранить эту информацию в базе данных?
[Обновить] В данный момент у меня есть следующая схема: таблица Form, table FormParam, table Table; Форма имеет отношение к FormParam (один ко многим), форма имеет отношение к таблице (один ко многим); но в этой схеме нет информации о зависимости таблицы от FormParam. Я могу сделать отношение из FormParam в таблицу, но в моем случае не все ситуации Таблица зависит от FormParam.Database Design

  1. Второй вопрос

У меня есть одна таблица, которая содержит некоторые данные (каталог организаций). В другой таблице у меня есть данные, которые будут выбраны пользователем из формы. В некоторых формах пользователь должен выбрать организацию из списка организации. Я хочу однородность хранения данных, которую пользователь выбирает из формы, поэтому я могу дублировать записи из первой таблицы во второй, но я не хочу (я думаю, что это плохой стиль).
Как это сделать в этом случае?
[Обновить] Возможно, существует решение таким образом, чтобы создать базу данных, в которой я могу указать первую таблицу для ссылки на записи, хранящиеся в другой таблице. Возможно, я ошибаюсь.

Спасибо!

+3

Непонятно, чего вы на самом деле хотите достичь. Пожалуйста, перепишите вопрос, чтобы сделать его более ясным. – Manu

+0

@Manu Спасибо за указание. Я обновил вопрос –

ответ

1

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

Чтобы решить вашу проблему сейчас, вы можете создавать таблицы в соотношении N x N, где в таблице A вы имеете информацию о форме и таблицу B, у вас есть информация о параметрах. В третьей таблице отношение NxN задает свойства, которые должны загружать нужные таблицы (которые будут храниться в поле строки в этой таблице).

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

+0

спасибо за советы. Как быть, если ** Таблица ** не зависит от ** Параметры **? Мне нужно разделить логику на извлечение ** Таблиц ** в зависимости от ** Параметры ** и ** Таблицы ** не зависят от ** Параметры **? –

+0

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

+0

(prm_parameter: int PK FK; prm_table: string). В первом поле (prm_parameter) вы должны как-то связываться с параметрами формы, заполненными пользователем. Во втором поле добавьте имя таблицы, которое необходимо загрузить, когда этот параметр выбран/заполнен.Затем вы сможете загружать только выбранные таблицы, когда вы запрашиваете группировку таблицы по полю prm_table. Это может решить проблему. – Alex