|
|
|
Дополнительный "уровень" данных
|
|||
|---|---|---|---|
|
#18+
Все наверное сталкивались с ситуацией, когда непринципиальное изменение структуры таблиц влечет за собой волну изменений во всех хранимках, которые ссылаются на эту таблицу. Особенно актуально это в самописных системах, которые живут и развиваются многие годы. Как решение проблемы мне видится вариант использования промежуточного "слоя" - интерфейса к таблицам данных - например тот-же вид или табличная функция. Тоесть все (вернее, только те, которые обращаются к таблицам на выборку) хранимки работают только с видами или табличными функциями, которые и обеспечивают дополнительный уровень и дают возможность абстрагироваться от способа хранения данных. На изменение и добавление - отдельный набор хранимок, мимо которых тоже ничего не может быть добавлено или изменено в таблицах. Хотелось бы услышать мнения народа "за"-"против" такого решения, может кто-то придумал что-то получше моего варианта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:30 |
|
||
|
Дополнительный "уровень" данных
|
|||
|---|---|---|---|
|
#18+
View как врапперы над таблицами - это хороший подход. Сам использую. 1 Минус: как бы "на шару" создается дополнительный набор объектов, во многом копирующих таблицы. 2 Плюс: однако, если у вас структура, "склонная" к рефакторингу, то подобного рода обертки более чем уместны. 3 Плюс: view (и табл. функции) как бы расширяют функционал отдаваемых таблицами колонок, если можно так выразится. Уменьшается количество копируемых из одной выборки в другую join-ов, улучшается читабельность кода. 4 Минус: другой стороны, надо понимать, что в пп.3 заключается опасность создания "универсальных" view, отдающих колонки на все случаи жизни, что сильно усложняет работу оптимизатора. Т.о. за "иерархией view" тоже надо следить. Замечу еще следующее. Что то мне подсказывает, что у вас SQLServer 2000 :) В одном из проектов мы массово использовали view как подобного рода обертки (для совместимости с 7.0), а в следующем также массово табличные функции (INLINE, не multistatetment это важно !). Так вот, нам показалось, что использование udf хуже воспринималось оптимизатором, чем view. Хотя в теории ему должно было быть все равно. Относительно "На изменение и добавление - отдельный набор хранимок, мимо которых тоже ничего не может быть добавлено или изменено в таблицах." Сейчас в новом проекте так и пишем, но я пока не готов дать оценку этому подходу. Особых плюсов, равно как и минусов не заметил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 12:25 |
|
||
|
Дополнительный "уровень" данных
|
|||
|---|---|---|---|
|
#18+
Я,например,в ряде систем просмотр данных осуществляю через view,ровно как и вставку,добавление и удаление.На самих таблицах в триггерах пробита логика контроля доступа. Минус:не все знают структуру таблиц,соответственнно для интеграции с внешними система чуть больше придется понимать. Плюсы: да просто работает все. В варианте с хранимыми процедурами вижу ряд следующих плюсов:проще обернуть процедуры web-сервисами для злополучной интеграции,новым сотрудникам почему-то проще войти в проект знаю имена ХП и выполняя с ними нужные вещи,чем изучать структуру БД и делать нужные действия. Ну а по-сути: stff или чуть более обще P.S. А разве промышленные системы не "живут и развиваются многие годы"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 12:47 |
|
||
|
Дополнительный "уровень" данных
|
|||
|---|---|---|---|
|
#18+
Да, у нас действиетельно 2000-й сиквел. И система не просто склонна, а очень склонна к рефакторингу - подход такой - надо максимально быстро реализовать то, и в том объеме, что нужно сейчас. Если что изменится - нужно иметь возможность быстро изменить... И при этом надо на долгие годы обеспечить чтобы проект не превратился в помойку уже через годик таких изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 12:53 |
|
||
|
Дополнительный "уровень" данных
|
|||
|---|---|---|---|
|
#18+
против ... без всяких ЗА ;))) но без этого ни как :\ сейчас переделываем наш здоровый сайт как на уровне базы так и на уровне скриптов уходя от этих самых посредников ... слишком их много и жестоко ... началась путанница и тяжко это всё стало отслеживать .... хотя до определённого момента особенно если горит и посредника сделать быстрее + как то его наворотить и прочее чем переделать структуру то можно и понаделывать их, а когда последняя капля капнет, сесть и перевести всё на новую структуру исходя из того что накопилось .. и так далее ... система то расширяется, меняются приоритеты и прочее - от этого не уйти ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2006, 03:29 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33664010&tid=1545318]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
181ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 544ms |

| 0 / 0 |
