|
полная декомпозиция для истории изменений
|
|||
---|---|---|---|
#18+
Calm И о какой утрате ссылочной целостности вы упоминали? для штатного расписания пример надуманный, но все же если в этом контексте... Когда к строке штатного расписания нужно сделать связь 1-1 или 1-n. Получается что состояние разнесено во времени и на этапе проектирования создать связь не получится. Связи приходится делать программно, в том числе и для того чтобы получить состояние на текущий момент времени. Надеюсь что доступно объяснил ). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2006, 18:57 |
|
полная декомпозиция для истории изменений
|
|||
---|---|---|---|
#18+
авторКак вы узнаете что произошло изменение и с какого месяца нужно пересчитать если у вас только 2-е даты С и ПО? Как это понять, если в данной ситуации вы просто меняете строку 01.01.2006 - 31.01.2006 оклад 100р. на строку 01.01.2006 - 31.01.2006 оклад 150р. Дык если взять месяц из "даты с", это и будет месяц, с которого надо пересчитать :) Надо правильно соединять оклады и людей. Можно сделать связь между сотрудников и разрядом тарифной сетки. Поменяли тарифную сетку, пересчитали людей. ТС кстати задним числом менять не положено. Можно сумму выплаты (скажем, доплату какую-нибудь за вредность) хранить как свойство сотрудника. Скажем, в мае заплатили (была привязка к челу с 1 мая по 31), а в июне сообразили, что никакой вредности не было. Тут и вовсе сразу понятно, что май надо пересчитывать, а не с января. Или притащил чел в сентябре справку об инвалидности, действующую с июля (нудно это дело, мед комиссии). Значится с мая и пересчитаем. Не проблема это, определить с какого месяца пересчет нужен. Ну а если в марте приказано уменьшить ставку НСП и ПЗ, то тоже все понятно - весело пересчитываем всех с января (тут как бы совпало с началом года, но важен факт тот, что при изменении данных мы точно определяем, когда надо пересчитывать). P.S. Опять же, мне не видна предполагаемая арихитектура вашего решения, поэтому может быть несколько запутано может показаться.. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2006, 19:01 |
|
полная декомпозиция для истории изменений
|
|||
---|---|---|---|
#18+
авторв одном случае - вертикальная раздутость, в другом - горизонтальная. Но разве горизонтальная раздутость раздувает не только объем данных (да разве это сегодня проблема?), но усложняет логику программы, удлиняет срок разработки, создает десятки постов на форумах :) ? авторНадеюсь что доступно объяснил Боюсь, что нет. Видимо пора мне отдыхать идти :) авторКогда к строке штатного расписания нужно сделать связь 1-1 или 1-n. На всякий случай замечу, что шт.должности и сотрудники должны связываться многие-ко-многим. Т.к. есть внутренние совместители. авторкаждый вариант имеет право на существование. Безусловно так, на том и порешим :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2006, 19:07 |
|
полная декомпозиция для истории изменений
|
|||
---|---|---|---|
#18+
Роман Дынник Calm Для налогов и других начислений нужна таблица Период начислений (месяц) Налог Сумма это уже результат расчета в виде журнала. сами же начисления, которые вы имеете ввиду должны инициироваться исходя из установленных свойств у сотрудника. ИМХО, ты в своей модели упустил ряд важных сущностей, и закрыл эту дыру в анализе некими абстрактными историями. Налоги и должности это не свойство сотрудника. Должность определяется записью в трудовой книжке. Опиши такую сущность и никакой истории не потребуется, поскольку запись в трудовой книжке имеет дату. Налоги определяются налоговым законодательством и налоговой базой. В системе нужно обеспечить учёт всех фактов, которые учитываются при начислении налога. Например документы подтверждающие факты страхования жизни, оплату обучения, покупку жилья и т.п. И создать процедуру, которая на основании этих данных будет расчитывать налог и отражать его на лицевом счёте сотрудника. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2006, 19:38 |
|
полная декомпозиция для истории изменений
|
|||
---|---|---|---|
#18+
mcureenabИМХО, ты в своей модели упустил ряд важных сущностей, и закрыл эту дыру в анализе некими абстрактными историями. Я написал что модель сильно упрощенная и от реальности очень далека. Мне хотелось обсудить конкретную реализацию истории на простых примерах, а мы спустились в дебри предметной области - всё понятно, но это не было целью данного топика... mcureenab, Calm , пожалуйста, давайте более абстрактный разговор вести, особо не погружаясь в предметную область зарплаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2006, 09:36 |
|
полная декомпозиция для истории изменений
|
|||
---|---|---|---|
#18+
CalmНо разве горизонтальная раздутость раздувает не только объем данных (да разве это сегодня проблема?) Это в определенных ситуациях может быть большой проблемой для DBA . Например, если у вас есть штук 100 никак не связанных между собой компаний и на каждую компанию своя база и в каждой такой базе здоровая такая partitioned view истории, секции которой в некоторых случаях требуется разнести по разным серверам... Потом как то надо идти на компромис при выборе полей секционирования поскольку данные все в одной куче. Чаще всего выбираются даты. и если вам надо выбрать всю историю для определенного атрибута получается полный скан всех секций, вот тогда секционирование проблем с производительностью не решит. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2006, 10:02 |
|
полная декомпозиция для истории изменений
|
|||
---|---|---|---|
#18+
Если бы вместо наукообразного термина декомпозиция , использовалось простое и понятное слово, детализация , то публике было бы более понятна суть.имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2006, 12:36 |
|
полная декомпозиция для истории изменений
|
|||
---|---|---|---|
#18+
Роман Дынник mcureenab, Calm , пожалуйста, давайте более абстрактный разговор вести, особо не погружаясь в предметную область зарплаты. ИМХО, абстрактные рассуждения ограничиваются тем, что так делать можно. Далее нужно рассматривать приложения теории, дабы оценить границы её практической применимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2006, 15:13 |
|
|
start [/forum/topic.php?fid=33&gotonew=1&tid=1549280]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
153ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 242ms |
total: | 502ms |
0 / 0 |