powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Распределение данных по таблицам
8 сообщений из 8, страница 1 из 1
Распределение данных по таблицам
    #39778934
Sergey-2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток форумчане,
Вот есть такая таблица 1 (см. рис.), в которой указан прибор и финансы которые на этот прибор тратятся.
Чтоб выдать отчет, по таблице 1, пользователь должен сначала приборы сгруппировать в акты (тогда приборы определенной группы, попадают в определенный акт).
Выделенияе приборов в акты, происходит в этом же окне/таблице, в особом режиме (каждому назначается группа), начиная с №1, далее по каждой группе расчитываются финансы (указанные в таблице).

По хорошему для финансов, нужно создавать отдельную (дополнительную) таблицу 2 на несколько полей, и их связывать (многие к одному). Сейчас у меня отображаются финансы для одной группы в какой-нибудь строке устройства данной группы – это не совсем наверное правильно (и все это в одной таблице).

Если я создам такую дополнительную таблицу, то это нужно писать больше кода (больше проверок).
Например при создании новой группы: пользователь выделяет устройства для группы, при окончании выделения, я расчитываю финансы, потом должен добавить строку в таблицу 2, взять id новой строки, потом присвоить это id в таблице 1 всем устройствам из этой группы.
Или например когда ВСЕ устройства из одной группы например №1 перейдут в группу №4, тогда строку в таблице 2, с группой №1 нужно удалить, а в группе №4, конечно изменятся значения финансов. И т.д.

Проще конечно было бы (обойтись без таблицы 2) и одним update заменять финансы у всех устройств в таблице и отображать их во всех строках.

Как вы думаете как лучше поступить?

Заранее спасибо за ответ
...
Рейтинг: 0 / 0
Распределение данных по таблицам
    #39778951
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008,

ИМХО нужно делать естественным образом. Искусственно созданные понятия, объекты порождают проблемы. Можете объяснить, что такое акт, какая его связь с группой и датой закрытия? Вообще акты хранятся в базе?
...
Рейтинг: 0 / 0
Распределение данных по таблицам
    #39778965
Sergey-2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXI,

- "Акт" - документ по группе устройств (туда входит название устройства, финансы по нему и т.д.), которые выводятся в word (по нажатию кнопки)
- "Дата закрытия" - дата закрытия акта, просто дата (т.е. она принадлежит всей группе, т.к. акт составляется на группу)
- сами акты не хранятся в БД, в БД хрананятся только данные для них (в таблице)
...
Рейтинг: 0 / 0
Распределение данных по таблицам
    #39779097
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008, смотрю на картинку и понимаю, что конечно неправильно отчёт составлен. В группе 1 два прибора, но дата закрытия и финансы указаны только у одного.... Причём у разных. Сначала и не поймёшь что тут написано
Однозначно требуется выводить дату закрытия и финансы одной строкой. Дополнительной, расположенной ниже всех приборов, входящих в акт. Зачем тут использовать какие-то дополнительные таблицы непонятно.
Тут требуется изменить форму отображения отчёта, но никак не структуру БД
...
Рейтинг: 0 / 0
Распределение данных по таблицам
    #39779098
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.FontaineSergey-2008, смотрю на картинку и понимаю, что конечно неправильно отчёт составлен. В группе 1 два прибора, но дата закрытия и финансы указаны только у одного.... Причём у разных. Сначала и не поймёшь что тут написано
Однозначно требуется выводить дату закрытия и финансы одной строкой. Дополнительной, расположенной ниже всех приборов, входящих в акт группу. и так по каждой группе, где есть закрытые акты. Зачем тут использовать какие-то дополнительные таблицы непонятно.
Тут требуется изменить форму отображения отчёта, но никак не структуру БД
Сначала не то немного написал. Малость подправил предыдущий текст
...
Рейтинг: 0 / 0
Распределение данных по таблицам
    #39779177
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы тогда хранил либо акты, либо группы хотя бы. А так не понятно. В разных группах могут быть одинаковые приборы? Во-вторых, если не хранить акты, как потом разбираться? Поднимать вордовские документы? Странная автоматизация.
...
Рейтинг: 0 / 0
Распределение данных по таблицам
    #39779496
Sergey-2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще раз спасибо за ответы.

Я разобрался. Дополнительную таблицу - откидываю, будет сложнее реализация.
Все буду хранить в одной таблице "tabl1".
В табл. на рис. для гурппы №1, все считается правильно, только выводится в разных строках. Я писал, что отображение сейчас корявое в том плане, что расчеты финансов и "даты закрытия" (для всей группы) отображаются в одной из строк группы. я намерен их отображать во всех строках группы. Хоть это будут одинаковые значения (во всех строках для одной группы), но нисего не поделаешь.

тут к этому же вопрос :
когда я заполняю в таблице "tabl1" данные: "дата закрытия" и финансы - я заполняю одну из строк группы,
вопрос :
можно ли написать триггер на эту же "tabl1" "AFTER UPDATE", чтоб он (на основании ввседенных данных "дата закрытия" и финансы) дозаполнял этими же данными ("дата закрытия" и финансы) остальные строки группы?

по сути это получается безконечный цикл.
...
Рейтинг: 0 / 0
Распределение данных по таблицам
    #39779503
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008 Дополнительную таблицу - откидываю, будет сложнее реализация.Дополнительная таблица для актов называется нормализация , откидывая ее вы попадаете на нарушение нормальной формы.
Ваша возня с триггерами это и есть последствия нарушения нормальной формы.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Распределение данных по таблицам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]