![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как лучше построить таблицу? [D7, IB6.x]
Andrio © (2003-04-03 12:24:00)Уважаемые мастера!
Есть таблица "Лицевые_Счета".
Каждый месяц на каждый лицевой счет производится начисление определенной суммы.
Эти начисления записываются в отдельную таблицу "Начисления"
Но как лучше сделать? :
а) Для каждого нового месяца создавать новую таблицу "Начисления"
(Например: "Начисления_YYYY_MM")
б) Начисления всех месяцев писать в одну таблицу. (В этом случае первичный ключ увеличивается на 1 поле - "Дата начисления")
В реальной БД работа будет происходить только с 1 месяцем, остальные будут только как архив, и совсем старые будут удаляться.
Какой способ лучше с т.з. клиента (скорости доступа, безопасности хранения и по другим характеристикам), но не с точки зрения программиста.
Заранее благодарен.
Tomkat (2003-04-03 15:06:00) [1]на мой взгляд , лучше всего делать 2 таблицы - счета (ACCOUNTS) и начисления на них (OPERS)
ACCOUNTS
ID - идетнификатор счета
...
....
.....
OPERS
ID - идентификатор операции
ID_AC - идентификатор счета, на к-й производятся начисления
DATA
SUMMA
...
....
Связать OPERS.ID_AC > ACCOUNTS.ID в отношении "много к одному"
там много раз делал , работает :-)))
vopros (2003-04-03 13:42:00) [2]Я уже намучился с таких подходом одного умника.Даже в пьяном угаре не придумал бы более зловещей постановки вопроса.
а) Для каждого нового месяца создавать новую таблицу "Начисления"
(Например: "Начисления_YYYY_MM")
Johnmen (2003-04-03 13:01:00) [3]пункт б)
"Дата начисления" вообще не должна входить в PK. Скорее всего UNIQUE INDEX.
Как сказал Mike_Goblin © - введение флага.
>Какой способ лучше с т.з. клиента (скорости доступа,
>безопасности хранения и по другим характеристикам), но не с
>точки зрения программиста.
Иди на клиентский сайт, там т.з.и узнаешь :)
А здесь сплошь программеры :)))))))
Mike_Goblin (2003-04-03 12:49:00) [4]На мой взгляд лучше
>б) Начисления всех месяцев писать в одну таблицу. (В этом >случае первичный ключ увеличивается на 1 поле - "Дата >начисления")
Так как часто клиент просит а вот скажите какие начисления были
12, 15, 17 этого месяца и 1 прошлого и за период с 1.03.2001 по 19.07.2001, при этом лазить по многим таблицам не удобно
Первичный ключ не увеличится, если использовать GEN_ID
Так же для архивации введите флаг - и сделайте View всех неархивных начислений
>Какой способ лучше с т.з. клиента
Это надо спрашивать у клиента :)