C # SQL: Каков наилучший способ реализации динамической таблицы? - PullRequest
0 голосов
/ 12 апреля 2010

Я хочу разрешить пользователю добавлять столбцы в таблицу в пользовательском интерфейсе.

Пользовательский интерфейс: Имя столбца: ______ Тип столбца: Число / Строка / Дата

Мой вопрос - как создавать таблицы SQL и объекты C #, чтобы реализация была эффективной и масштабируемой.


Моя мысль состоит в том, чтобы построить две таблицы SQL:

TBL 1 - Столбцы Определение:

ColId, ColName, ColType [Текст]

TBL 2 - Столбцы Значения:

RowId, ColId, значение [текст]


Я хочу, чтобы решение было эффективным в пространстве БД,

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

Я работаю на .NET 3.5 / SQL Server 2008.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2010

Добавить значение по умолчанию для вашего ColumnDefinition. Добавляйте значение в ColumnsValues ​​только в том случае, если оно не является значением по умолчанию. Это сильно ускорит процесс.

В таких системах я ненавижу то, что очень трудно передавать изменения между dev / stage / production, потому что вам придется синхронизировать структуру и содержимое таблиц.

0 голосов
/ 12 апреля 2010

Я полагаю, что именно так работает WebParts.SqlPersonalizationProvider, что не обязательно означает, что он лучший, но означает, что после того, как некоторые умные люди думают об этом какое-то время, они и придумали.

Сортировка по заданному полю будет немного сложнее, особенно если текст поля требует не-текстовой сортировки (то есть, если вы хотите, чтобы «2» предшествовало «10»).

Я бы предложил, чтобы из C # вы выполняли один запрос к ColumnsDefinition и, исходя из этого, выбирали один из нескольких различных запросов для выбора / сортировки данных.

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