То, как запланировать схему, изменяется в базе данных SQLite?

Я в настоящее время разрабатываю приложение, которое будет хранить данные в базе данных SQLite. База данных будет намного более читать - чем доступ для записи (на самом деле, это будет заполнено данными однажды, и затем почти только чтение произойдет). Производительность чтения поэтому очень mre важна. Схема, которую я в настоящее время разрабатываю, очень вероятно, изменится в будущем с дополнительными столбцами и добавляемыми таблицами. У меня нет особого опыта с базами данных в целом. Мой вопрос, конкретно в SQLite, там какие-либо ловушки, которые рассмотрят при изменении схемы? Есть ли какие-либо шаблоны или лучшие практики, чтобы запланировать заранее для таких случаев?

6
задан Charles Sprayberry 29 January 2012 в 04:22
поделиться

2 ответа

Вот несколько предложений:

  1. Не используйте select * from ... , потому что значение * изменяется при изменении схемы; явным образом назовите столбцы, которые использует ваш запрос
  2. Сохраните номер версии схемы в базе данных и сохраните код в приложении для преобразования из версии схемы N в версию N + 1; тогда весь код в приложении работает с последней версией схемы; это может означать наличие значений по умолчанию для заполнения добавленных столбцов
  3. Вы можете избежать копирования таблиц для обновлений схемы с помощью SQLite версии 3.1.3 или выше, которая поддерживает ALTER TABLE ADD COLUMN ...
7
ответ дан 17 December 2019 в 00:05
поделиться

Изучите дизайн витрин данных и звездообразной схемы. Это может быть излишним для вашей ситуации, но, по крайней мере, не позволит вам создавать произвольный дизайн.

0
ответ дан 17 December 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: