Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как лучше построить таблицу? [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 всех неархивных начислений

>Какой способ лучше с т.з. клиента
Это надо спрашивать у клиента :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо