Огромная база данных в mssql2005 с большой кодовой базой в зависимости от структуры этой базы данных.
У меня около 10 похожих таблиц, все они содержат либо имя файла, либо полный путь к файлу. Полный путь всегда зависит от идентификатора элемента, поэтому нет смысла хранить его в базе данных. Получение полезных данных из этих таблиц выглядит примерно так:
SELECT a.item_id
, a.filename
FROM (
SELECT id_item AS item_id
, path AS filename
FROM xMedia
UNION ALL
-- media_path has a different collation
SELECT item_id AS item_id
, (media_path COLLATE SQL_Latin1_General_CP1_CI_AS) AS filename
FROM yMedia
UNION ALL
-- fullPath contains more than just the filename
SELECT itemId AS item_id
, RIGHT(fullPath, CHARINDEX('/', REVERSE(fullPath))-1) AS filename
FROM zMedia
-- real database has over 10 of these tables
) a
Я хотел бы создать единое представление всех этих таблиц, чтобы новому коду, использующему эту катастрофу данных, не нужно было знать обо всех различных таблицах носителей. Я также хотел бы использовать это представление для вставки и обновления заявлений. Очевидно, старый код будет по-прежнему полагаться на актуальность таблиц.
После прочтения страницы MSDN о создании представлений в mssql2005 Я не думаю, что представления с SCHEMABINDING будет достаточно.
Как бы я создал такой обновляемый вид?
Это правильный путь?