надо оценить:
1. в скольких экземплярах планируеться проект
2. будет ли необходимость переползания на другую БД (в виду ннапример увеличения нагрузки)
3 если проект будет в нескольких экземплярах, то не потребуеться ли какому-либо заказчику версия на другйо бд (очень актуально для банков)
я позволю себе сказать о том что выше описывали не совсем то уж и обстрактный доступ, он обстрактен конечно но не так как нужно до окнца.
Обстрантность доступа к данным, ан е обстрактность доступа к БД - овт что важно, и это разные веши. Т.е. доступ должен состоять как минимум из 3х уровневой модели
- первый уровень отвечает за низкоуровневые операции по работе с БД
- второй по формированию сущностей данных
- третий непосредственно по рабоет с этими данными
в чем плюс такой модели на мой взгляд, мы полностью абстрагируемся от способа получения данных, мы работаем с сущностями (объекты, массивы, "вирутальные таблицы") и не задумываемся о тмо как полученны эти данные из источника данных, это позволяет нам написав 1й и 2й уровни работать с любым источников - хоть с текстовыми файлами и не почувствуем раздницу в способе работе с этими данными. ВОзможно описанная мною модель не идеальна, но согласитесь мысль не плоха?
Теперь о минусах - данная модель должна быть заложена изначально уже на процессе проектирования, иначе потом приджеться рушить и крушить всё на свете (т.е. в коде).