|
Распределение данных по таблицам
|
|||
---|---|---|---|
#18+
Доброе время суток форумчане, Вот есть такая таблица 1 (см. рис.), в которой указан прибор и финансы которые на этот прибор тратятся. Чтоб выдать отчет, по таблице 1, пользователь должен сначала приборы сгруппировать в акты (тогда приборы определенной группы, попадают в определенный акт). Выделенияе приборов в акты, происходит в этом же окне/таблице, в особом режиме (каждому назначается группа), начиная с №1, далее по каждой группе расчитываются финансы (указанные в таблице). По хорошему для финансов, нужно создавать отдельную (дополнительную) таблицу 2 на несколько полей, и их связывать (многие к одному). Сейчас у меня отображаются финансы для одной группы в какой-нибудь строке устройства данной группы – это не совсем наверное правильно (и все это в одной таблице). Если я создам такую дополнительную таблицу, то это нужно писать больше кода (больше проверок). Например при создании новой группы: пользователь выделяет устройства для группы, при окончании выделения, я расчитываю финансы, потом должен добавить строку в таблицу 2, взять id новой строки, потом присвоить это id в таблице 1 всем устройствам из этой группы. Или например когда ВСЕ устройства из одной группы например №1 перейдут в группу №4, тогда строку в таблице 2, с группой №1 нужно удалить, а в группе №4, конечно изменятся значения финансов. И т.д. Проще конечно было бы (обойтись без таблицы 2) и одним update заменять финансы у всех устройств в таблице и отображать их во всех строках. Как вы думаете как лучше поступить? Заранее спасибо за ответ ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 17:30 |
|
Распределение данных по таблицам
|
|||
---|---|---|---|
#18+
Sergey-2008, ИМХО нужно делать естественным образом. Искусственно созданные понятия, объекты порождают проблемы. Можете объяснить, что такое акт, какая его связь с группой и датой закрытия? Вообще акты хранятся в базе? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 18:01 |
|
Распределение данных по таблицам
|
|||
---|---|---|---|
#18+
KreatorXXI, - "Акт" - документ по группе устройств (туда входит название устройства, финансы по нему и т.д.), которые выводятся в word (по нажатию кнопки) - "Дата закрытия" - дата закрытия акта, просто дата (т.е. она принадлежит всей группе, т.к. акт составляется на группу) - сами акты не хранятся в БД, в БД хрананятся только данные для них (в таблице) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 18:43 |
|
Распределение данных по таблицам
|
|||
---|---|---|---|
#18+
Sergey-2008, смотрю на картинку и понимаю, что конечно неправильно отчёт составлен. В группе 1 два прибора, но дата закрытия и финансы указаны только у одного.... Причём у разных. Сначала и не поймёшь что тут написано Однозначно требуется выводить дату закрытия и финансы одной строкой. Дополнительной, расположенной ниже всех приборов, входящих в акт. Зачем тут использовать какие-то дополнительные таблицы непонятно. Тут требуется изменить форму отображения отчёта, но никак не структуру БД ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2019, 07:33 |
|
Распределение данных по таблицам
|
|||
---|---|---|---|
#18+
Mr.FontaineSergey-2008, смотрю на картинку и понимаю, что конечно неправильно отчёт составлен. В группе 1 два прибора, но дата закрытия и финансы указаны только у одного.... Причём у разных. Сначала и не поймёшь что тут написано Однозначно требуется выводить дату закрытия и финансы одной строкой. Дополнительной, расположенной ниже всех приборов, входящих в акт группу. и так по каждой группе, где есть закрытые акты. Зачем тут использовать какие-то дополнительные таблицы непонятно. Тут требуется изменить форму отображения отчёта, но никак не структуру БД Сначала не то немного написал. Малость подправил предыдущий текст ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2019, 07:34 |
|
Распределение данных по таблицам
|
|||
---|---|---|---|
#18+
Я бы тогда хранил либо акты, либо группы хотя бы. А так не понятно. В разных группах могут быть одинаковые приборы? Во-вторых, если не хранить акты, как потом разбираться? Поднимать вордовские документы? Странная автоматизация. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2019, 10:39 |
|
Распределение данных по таблицам
|
|||
---|---|---|---|
#18+
Еще раз спасибо за ответы. Я разобрался. Дополнительную таблицу - откидываю, будет сложнее реализация. Все буду хранить в одной таблице "tabl1". В табл. на рис. для гурппы №1, все считается правильно, только выводится в разных строках. Я писал, что отображение сейчас корявое в том плане, что расчеты финансов и "даты закрытия" (для всей группы) отображаются в одной из строк группы. я намерен их отображать во всех строках группы. Хоть это будут одинаковые значения (во всех строках для одной группы), но нисего не поделаешь. тут к этому же вопрос : когда я заполняю в таблице "tabl1" данные: "дата закрытия" и финансы - я заполняю одну из строк группы, вопрос : можно ли написать триггер на эту же "tabl1" "AFTER UPDATE", чтоб он (на основании ввседенных данных "дата закрытия" и финансы) дозаполнял этими же данными ("дата закрытия" и финансы) остальные строки группы? по сути это получается безконечный цикл. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2019, 18:46 |
|
Распределение данных по таблицам
|
|||
---|---|---|---|
#18+
Sergey-2008 Дополнительную таблицу - откидываю, будет сложнее реализация.Дополнительная таблица для актов называется нормализация , откидывая ее вы попадаете на нарушение нормальной формы. Ваша возня с триггерами это и есть последствия нарушения нормальной формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2019, 19:06 |
|
|
start [/forum/topic.php?fid=32&msg=39778965&tid=1539955]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
156ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 240ms |
total: | 500ms |
0 / 0 |