как позволить пользователям выбирать столбцы в таблице базы данных - PullRequest
1 голос
/ 19 августа 2011

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

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

1 Ответ

3 голосов
/ 19 августа 2011

Ваше приложение может быть основано на представлениях / таблице INFORMATION_SCHEMA. Это документация по SQL Server, но вы можете легко найти ее и для других баз данных:

http://msdn.microsoft.com/en-us/library/ms186778.aspx

Примеры SQL:

select * from INFORMATION_SCHEMA.TABLES

select * from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'users'

Если вы хотите использовать это решение со многими базами данных, чтобы отделить ваше приложение от движка БД, вы можете создать интерфейс определения IMetadataProvider и создать реализации для разных баз данных:

interface IMetadataProvider {
    ...GetTables();
    ...GetTableColumns();
    ...GetTableRelations();
    //Other functions required by your project
}

Вы также можете создать свой собственный интерфейс построителя запросов:

interface IQueryBuilder {
    ...From(string tableName);
    ...Top(int numberOfRows); //TOP for SQL SERVER, LIMIT for MySQL
} 
...