Шаблон проектирования для динамического добавления столбцов в таблицу базы данных - PullRequest
4 голосов
/ 20 декабря 2010

Пользователь хочет динамически добавлять новые поля в пользовательском интерфейсе. Это новое поле должно храниться в базе данных, и ему должно быть разрешено выполнять CRUD.

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

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

Ответы [ 3 ]

7 голосов
/ 20 декабря 2010

К этому можно приблизиться, используя систему значений ключей. Вы создаете таблицу со столбцами первичного ключа таблицы, которую вы хотите аннотировать, столбец для имени атрибута и столбец для его значения. Когда пользователь хочет добавить атрибут (скажем, высоту) в запись лица 123, вы добавляете в новую таблицу строку со значениями (123, «ВЫСОТА», «140,5»).

Обычно вы приводите значения в TEXT для хранения, но если вы знаете, что все атрибуты будут числовыми, вы можете выбрать другой тип для столбца значений. Вы также можете (не рекомендуется) использовать несколько различных столбцов значений в зависимости от типа данных.

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

1 голос
/ 02 февраля 2012

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

Использование любого из методов, описанных выше, не исключает риска;это просто возврат к полям заполнения COBOL или ненужные украшения функции базы данных.Результат все еще может быть ненормализованным и неточным.

Эти же деловые люди добавляют столбцы к электронным таблицам и таблицам в документы Word без вмешательства администраторов баз данных.

Конечно, просто добавление столбца - это наименьшая часть работы информационной системы, но часто это воспринимается как непреодолимый барьер.На самом деле это 5 минут работы, если вы знаете, где ее поставить.Добавление столбца к правильной таблице с правильным типом данных легко сделать, легко использовать и дает наилучшие шансы на повышение качества данных.

0 голосов
/ 20 декабря 2010

Узнайте, какое максимальное количество полей будет добавлено пользователем, и добавьте их заранее.Например, «Пользователь1», «Пользователь2», «Пользователь3», «Пользователь4» ... и т. Д.Затем вы можете включить поля в пользовательском интерфейсе на основе некоторых настраиваемых параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...