|
|
|
mmex sqlite
|
|||
|---|---|---|---|
|
#18+
Народ, Я постороил графическое представление части БД финансовой программы Money Manager Ex, которую использую. Постоянно допиливаю это приложение. Собственно интересует мнение бывалых, насколько плохо/хорошо посроена и нужно ли что-то менять. Это всё чисто из спортивного интереса и для общего развития. Финансовая информация хранится в таблице checkingaccount_v1. Каждая проводка имеет id, принадлежность к счёту accountid, плательщика, дату, сумму. Может быть приходом, расходом или переводом средств на другой счёт. Каждая проводка относится к категории categid и (необязательно) к подкатегории. Может быть разделена, тогда бругие категории прописываются в таблице splittransactions_v1 с соответствующими суммами. Заметил, что индексы integer связаны с соответсвующими id, которые numeric. Большой ли это косяк? Какие индексы должны быть заданы? В программе как правило в хронологическом порядке представлены данные с группировкой по счетам и сортировкой по дате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2011, 00:22 |
|
||
|
mmex sqlite
|
|||
|---|---|---|---|
|
#18+
maximand Собственно интересует мнение бывалых, насколько плохо/хорошо посроенаЭто надо спросить у ваших пользователей. maximand нужно ли что-то менятьЧтобы чтото менять надо сначала понять что хотим, затем что не устраивает, вычислить дельту и затем менять. По одной картинке это сделать невозможно за исключением явных ляпов. maximand Это всё чисто из спортивного интереса и для общего развития.Понятный и приемлимый повод. maximand Заметил, что индексы integer связаны с соответсвующими id, которые numeric. Большой ли это косяк?Давайте разбираться индексы по полю ... типа integer связаны (имеют ограничение внешнего ключа?) с соответсвующими id (первичным ключом в другой таблице) которые numeric имеющим тип numeric. С хорошей долей вероятности ничего плохого не произойдет, СУБД просечет фишку и будет использовать индекс при джойнах. Однако лучше бардак чистить сразу особенно если Постоянно допиливаю это приложение maximand Какие индексы должны быть заданы?Зависит от ваших запросов. maximand В программе как правило в хронологическом порядке представлены данные с группировкой по счетам и сортировкой по дате. А про отбор ничего не сказал. И про вставку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2011, 01:18 |
|
||
|
mmex sqlite
|
|||
|---|---|---|---|
|
#18+
maximandЗаметил, что индексы integer связаны с соответсвующими id, которые numeric. Большой ли это косяк? Для sqlite это не косяк, она не пытается типизировать колонки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2011, 14:30 |
|
||
|
mmex sqlite
|
|||
|---|---|---|---|
|
#18+
Обнаружил такой косяк. Если отметить более чем пару десятков троводок на удаление и дать команду удалить, то программа по циклу начинает удалять их по id delete from CHECKINGACCOUNT_V1 where TRANSID = x delete from SPLITTRANSACTIONS_V1 where TRANSID = x Работает это очень медленно, несколько секунд. Но что интересно, что когда цикл заканчивается, ещё долго шуршит винчестер (секудн 10 не меньше) и только после работоспособность программы восстанавливается (иногда вообще падает). Я переделываю код на что-то вроде delete from CHECKINGACCOUNT_V1 where TRANSID in ( id1, id2,...) Так работает быстро (но не стабильно - падает часто если проводок много, но это видимо другая проблема) Аналогичная проблема при импорте из, например, csv. Понятно, что парсится файл и производится несколько insert. Чтобы вставить 200 строк уходит секунд 15 (на не старом ноуте). Может тюнинг БД какой-то необходим? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2011, 12:27 |
|
||
|
mmex sqlite
|
|||
|---|---|---|---|
|
#18+
На мой взгляд с категориями и подкатегориями - не очень удачно придумано. Так в CHECKINGACCOUNT_V1 и SPLITTRANSACTIONS_V1 придется контролировать то что указанная подкатегория относится к указанной категории. Я бы сделал связь только с таблицей подкатегорий. Соответственно удалил бы ссылку на категорию из CHECKINGACCOUNT_V1 и SPLITTRANSACTIONS_V1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2011, 02:19 |
|
||
|
mmex sqlite
|
|||
|---|---|---|---|
|
#18+
Кстати, а если в SPLITTRANSACTIONS_V1 есть две строки с одним и тем же transid, то в этих строках категории и подкатегории должны совпадать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2011, 02:22 |
|
||
|
mmex sqlite
|
|||
|---|---|---|---|
|
#18+
dolbusКстати, а если в SPLITTRANSACTIONS_V1 есть две строки с одним и тем же transid, то в этих строках категории и подкатегории должны совпадать? Для того и придумано, когда чек один, а категории разные, например. Т.е. не должны, но могут и совпадать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2011, 15:33 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37284049&tid=1542145]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
163ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 493ms |

| 0 / 0 |
