| 
 | 
| 
 
Распределение данных по таблицам 
 | 
|||
|---|---|---|---|
| 
 #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?desktop=1&fid=32&tid=1539955]:  | 
    0ms | 
get settings:  | 
    12ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    41ms | 
get topic data:  | 
    13ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    51ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 229ms | 
| total: | 372ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.