2009-05-26 1 views
1

У меня есть сценарий, который генерирует сценарии DDL для определения материализованных представлений для нормализованной базы данных. В некоторых таблицах есть такие столбцы, как «владелец», которые указывают на конкретного пользователя базы данных, который затем я могу создавать представления, для которых будут отображаться только строки таблицы, созданные пользователем текущей базы данных. Такие взгляды в некоторых случаях будут полезны как с точки зрения безопасности, так и с точки зрения удобства, например, показывая только собственные результаты теста с несколькими вариантами выбора.автоматизированные DDL-скрипты: сколько функций предсказывать?

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

Мой вопрос в том, сколько из этих персонализированных представлений я должен буду автоматически генерировать? Для нескольких сотен таблиц это добавляет хороший кусок времени для процессов построения, тестирования и бенчмаркинга, автоматизированных, хотя они и есть. Будете ли вы ошибаться на стороне дополнительных функций, которые никогда не будут использоваться, или на стороне наличия доступных только тех представлений, которые были запрошены/которые вы знаете, будут полезны?

ответ

2

Это хороший вопрос, чтобы задать себе вопрос - общность (обычно ;-) хорошая вещь, но, как вы наблюдаете, чрезмерное обобщение может привести вас к комбинаторному взрыву. Можете ли вы предусмотреть, что требуемые бит DDL будут генерироваться «как раз вовремя», когда пользователь попытается использовать его (конечно, сохраняя некоторый «кеш» битов, которые уже оказались полезными)?

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

+0

Спасибо! Идея «точно в срок» интересна, мне нужно будет изучить ее выполнимость. Также хороший призыв к легкости части уведомления. – Kev

Смежные вопросы