Индивидуально для каждой субд. Поэтому поправил заголовок темы.
По существу - у вас sqlite на запись. На конкурентную запись. Значит вы осознанно его выбрали и делается одна или три операции вас не волнуют с вашими полутора пользователями.
tonchikp пишет:Вопрос 1: Беспокоит то, что каждый раз при обновлении (update) куча холостых операций (create, insert), может это как то иначе решается, подскажите.
С sqlite расширением синтаксиса не знаком. По документации похоже, что нативно upsert не умеет делать.
tonchikp пишет:Вопрос 2: А как вы решаете задачи которые требуются однократно при первом запуске?
Обычно схема данных статична по природе самой реляционной базы. Поэтому схема данных накатывается при раскатке кода проекта в рамках общего процесса установки и обновления. И не присутствует в коде взаимодействия с базой, а вызывается именно вне контекста сайта.
Для всяких коробочных продуктов - во фронтконтроллере проверяется существование (или отсутствие) какого-нибудь нужного файлика, например скрипта установщика. Соответственно этому становится ясно, есть уже база или ещё нет.
tonchikp пишет:Вопрос 3: Подключение к базе данных. Может в другой файл переместить? Но тогда при перемещении файла будут проблемы, а если оставить - то постоянно открывается и закрывается подключение к базе данных в разных файлах.
depency injection, для маленьких приложений singleton всё так же удобен, вот это всё.
Открывать-закрывать на каждое обращение разумеется не надо.
|