Просмотр SQLite для нескольких баз данных.Это нормально?Есть ли способ лучше? - PullRequest
2 голосов
/ 28 сентября 2010

Используя SQlite, у меня большая база данных, разбитая на годы: DB_2006_thru_2007.sq3 DB_2008_thru_2009.sq3 DB_current.sq3 Все они имеют один вызов таблицы hist_tbl с двумя столбцами (ключ, данные).

Требования: 1. иметь возможность доступа ко всем данным одновременно. 2. Вставки идут только в текущей версии. 3. данные будут продолжать делиться с течением времени. 4. Доступ осуществляется через одну программу, которая имеет эксклюзивный доступ. 5. программа может принимать некоторые настройки SQL, но при запуске одной или нескольких баз данных она должна выполняться одинаково.

Для их совместного просмотра я делаю следующее (на самом деле в программе, но здесь показана командная строка): sqlite3 DB_current.sq3

присоединить базу данных 'DB_2006_thru_2007.sq3' как исторический_1; присоединить базу данных 'DB_2008_thru_2009.sq3' как исторический_2; создать временное представление Hist_TBL как выберите * из объединения исторических1.hist_tbl выберите * из объединения исторических2.hist_tbl выберите * из main.hist_tbl;

Теперь есть temp.hist_tbl (view) и main.hist_tbl (table). Когда я выбираю без определения таблицы, я получаю данные через представление. Это желательно, поскольку я могу использовать свои стандартные SQL-запросы к объединенному представлению или отдельным базам данных в зависимости от того, как я настроил. Кроме того, я всегда могу вставить в main.hist_tbl.

Вопрос 1: Каковы недостатки? Вопрос 2: есть ли лучший способ?

Заранее спасибо.

1 Ответ

2 голосов
/ 28 сентября 2010

Вопрос 1: Каковы недостатки?

Вам необходимо обновить представление КАЖДЫЙ . НАЛОГОВАЯ .year.

Вопрос 2: Есть ли лучший способ?

Добавьте столбец даты, чтобы вы могли искать вещи в течение определенного промежутка времени, например, в финансовом году.

...