Jedna ze základních funkcí každého redakčního systému je editor číselníků. V každé aplikaci jich existuje spousta, a mají mezi sebou různé relace. Máme jej napsaný pro různé databáze, od MySQL, přes Oracle po SQL Server 2008.
V praxi to funguje tak, že se skript napojí na INFORMATION_SCHEME, načte si automaticky strukturu tabulky, datové typy, délky polí, autoincrementy, komentář k polím, přidá k tomu případné odkazy na jiné číselníky (třeba tabulka měst se odkazuje na tabulku krajů), a tyto umožní pohodlně editovat. Textová pole jsou samozřejmě zpracovávána WYSIWYG editorem. Je to prostě komfortní možnost jak rychle upravit parametry aplikace pro běžné uživatele.
V případě MySQL existuje INFORMATION_SCHEME.COLUMNS tabulka, v níž je vše potřebné. Na SQL Server 2008 musíte použít poněkud složitější dotaz, a to třeba takovýto:
CREATE VIEW [dbo].[dbscheme] AS
SELECT
t.name AS TabulkaNazev,
c.colid AS SloupecPozice,
c.name AS SloupecNazev,
ISNULL(i.CHARACTER_MAXIMUM_LENGTH, i.NUMERIC_PRECISION) AS SloupecDelka,
i.DATA_TYPE AS SloupecTyp,
i.COLUMN_DEFAULT AS SloupecDefault,
CAST(cd.value AS varchar(255)) AS SloupecPopis,
COLUMNPROPERTY(OBJECT_ID(i.TABLE_NAME), i.COLUMN_NAME, 'IsIdentity') AS IsIdentity
FROM sys.sysobjects AS t
JOIN sys.syscolumns AS c ON c.id = t.id
JOIN INFORMATION_SCHEMA.COLUMNS AS i ON i.TABLE_CATALOG = 'databáze'
AND i.TABLE_SCHEMA = 'dbo' AND i.TABLE_NAME = t.name
AND i.COLUMN_NAME = c.name
LEFT JOIN sys.extended_properties AS cd ON cd.major_id = c.id
AND cd.minor_id = c.colid AND cd.name = 'MS_Description'
WHERE t.type = 'u'
Výsledkem bude pohled, který vám nabídne název tabulky, jméno a datový typ sloupce, jeho defaultní hodnotu, velikost datového pole a description ke sloupci (SloupecPopis), který následně můžete zobrazit uživateli jako textový popis (takže namísto technického itemid aplikace vypisuje automaticky sloupec jako Číslo článku).