Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > Оптимизация методов работы с БД


Автор: Lindemann66 11.10.2011, 08:34
Всем привет!

Суть в чём
На данный момент написано достаточно большое количество функций по работе с БД - порядка 30
В дальнейшем, естественно, планируется написание ещё некоторого количества
Сейчас объём строк уже почти равен 1к

Вот я и хочу узнать, что вы думаете о том, чтобы оптимизировать функции
То есть, для примера
У нас есть 10 функций добавления - Addlink, AddPage, AddTextBlock и т.д.
Можно, написав одну функцию Insert(...) с некоторыми параметрами, использовать её во всех случаях добавления
Так же поступить и с Select, Update и Delete, благо основных операций в SQL как раз 4

Мне, в принципе, кажется это логичным, но интересно мнение людей, которые, быть может, уже думали, или даже реализовывали такой подход
Чем это чревато, не будет ли потом ещё большей путаницы, или недостатков нет?

И какие ещё способы оптимизации вы знаете?
Вопрос не упирается именно в приведённый мной выше способ

Буду рад любым ответам!

Автор: newbee 11.10.2011, 09:24
Под каждую выборку данных создается один типичный реляционный объект - модель данных. То есть, во-первых это табличное представление данных; во-вторых, реализация связи таблиц (объектов) (это когда в поле "должность" сотрудника указан идентификатор, по которому из другой таблицы выбирается ее текстовое представление; это может быть реализовано или средствами СУБД, или программно как связи между объектами, но никаких сложных left join запросов); в-третьих, модель должна предоставлять интерфейс на манипулирование данными: изменение, удаление, добавление. На моей практике этого достаточно для любых взаимодействий с БД. 

Естественно поверх этого базовго слоя можно наложить вспомогательные addLink, addPage, хотя лично я так никогда не делаю. А делать каждый раз из проекта в проект свои addLink-и - это конечно пустая трата времени.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)