| 
 | 
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Интересуюсь мнением коллег об организации работы с большими (много полей) сущностями. В сопровождающей нами инфосистеме реализованы два способа хранения сущности в базе данных: 1. поля сущности в виде широкой записи в одной таблице, 2. разбиение полей сущности на две строки в разных таблицах с одним значением суррогатного ключа. Например: 1. сущность Сотрудник имеет примерно 30 полей и хранится в виде одной записи 2. сущность Персона также имеет примерно 30 полей но разбита на две записи в таблице Персоны и в таблице ПерсоныД Обе сущности имеют идентификационные поля - ФИО, Дата рождения и т.п. Работа с сущностями почти идентичная - показываем в гриде идентификационные поля + поле вызова формы (UserControl) для работы с полной информацией сущности. Как работать с данными? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.06.2019, 13:26 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ВМоисеевИнтересуюсь мнением коллег об организации работы с большими (много полей) сущностями. В сопровождающей нами инфосистеме реализованы два способа хранения сущности в базе данных: 1. поля сущности в виде широкой записи в одной таблице, 2. разбиение полей сущности на две строки в разных таблицах с одним значением суррогатного ключа. Например: 1. сущность Сотрудник имеет примерно 30 полей и хранится в виде одной записи 2. сущность Персона также имеет примерно 30 полей но разбита на две записи в таблице Персоны и в таблице ПерсоныД Обе сущности имеют идентификационные поля - ФИО, Дата рождения и т.п. Работа с сущностями почти идентичная - показываем в гриде идентификационные поля + поле вызова формы (UserControl) для работы с полной информацией сущности. Как работать с данными? Многие Субд поддерживают XML и JSON (Поддерживают это означает могут выдернуть информацию по xmlpath ..Преобразовать в реляционную таблицу и т.д)..Незначительные поля,которые редко нужны в отчетах или всяких статистиках...можно хранить в clob поле,внутри которого xml или json ,контекст которых будет соответствовать соответствующей строке и раскрывать её "более подробно". ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.06.2019, 14:07 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Считайте, что это две сущности со связью один-к-одному. Если у вас используется какой-то ORM фреймвок, то большинство из них должны это поддерживать. Если ПерсоныД должны создаваться/удаляться одновременно с Персоны, то на уровне ORM это настраивается. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.06.2019, 16:21 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  >irbis_al, сегодня, 14:07   https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1313230&msg=21899790][21899790]  >...можно хранить в clob поле… <В этом есть нужное зерно. Не знаю пока всех подводных камней, но испытать идею нужно обязательно. Также же, есть и другие сущности, куда большего размера, к тому же в реальности имеющих много (очень) пустых полей. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.06.2019, 17:20 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ВМоисеев, Не надо ничего разбивать. Проблема высосана из пальца. 30 полей разве это много? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.06.2019, 18:53 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp, они из альфы центавра, у них все по другому ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.06.2019, 19:32 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ViPRos, Я не в курсе. Если мне нужна сущность со 100 полями, то я не боюсь что ПЭВМ не справится). Удачи автору. И не боятся этой персональной электронной машины. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.06.2019, 19:41 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  >PetroNotC Sharp, сегодня, 18:53   https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1313230&msg=21899886][21899886]  >...30 полей разве это много?... <Это почти реальный пример 2-х подходов хранения сущности. Хотелось понять как аккуратно работать с множествами подобных сущностей. Делаю запрос, что в выборке? Полная сущность или только определенные её поля? В гриде показываю строки со всеми полями сущности? Какой объем выборки? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.06.2019, 21:22 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  >PetroNotC Sharp, сегодня, 18:53   https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1313230&msg=21899886][21899886]  >...30 полей разве это много?... <Это почти реальный пример 2-х подходов хранения сущности. Хотелось понять как аккуратно работать с множествами подобных сущностей. Делаю запрос, что в выборке? Полная сущность или только определенные её поля? В гриде показываю строки со всеми полями сущности? Какой объем выборки? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.06.2019, 21:23 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ВМоисеев, Когда к врачу приходишь, то первый вопрос его - что вас беспокоит? Не разговоры что 30 это много, а 5 мало, а именно что болит? Или симптомы какие. Прзнакомься с ОРМ. Там ленивые поля которые загрузятся по доп.запросу. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.06.2019, 22:13 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  не надо ORM ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 00:14 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ВМоисеевКак работать с данными? Задачу какую решаем? Кто будет работать с данными? Каким образом он/они это будут делать? Какие сценарии использования ПО? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 00:43 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  полудухне надо ORMсогласен. Оно не тормозит что с ОРМ что без него. Пусть лучше напишет что у него переменных в приложении много и как с нии бороться. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 07:13 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  >irbis_al, вчера, 14:07   https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1313230&msg=21899790][21899790]  >...можно хранить в clob поле… <Попытался в лоб - сериализовал параметры детализации и сбросил в clob. Достал и развернул в переменные. ок. Работаю на C#. Но имею мечту - хочу сохранить возможность писать приложения для инфосистемы и на других языках, интересует Delphi. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 08:22 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  >hVostt, сегодня, 00:43  https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1313230&msg=21900043][21900043]  >Задачу какую решаем?... <Для начала - стандартную, добавить и удалить сущность, выбрать сущность и скорректировать её параметры, использовать параметры сущности для подстановки в другую сущность. Вариант работы на слайде ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 08:57 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  па сабжу: классическая проблема - хранение разнородной информации у сущности. ИМХО, лучший выбор - EAV. Почему: 1. можно на лету добавить/удалить произвольный параметр у любой сущности в системе не меняя схему данных. 2. Унифицированный механизм получения и записи значений параметров для любой сущности в системе. Один код на всю систему. 3. Унифицированное управление правами на все параметры. 4. Не нужны админские права. Достаточно права на запись в справочник параметров и таблицу фактов. 5. Удобно хранить сильно разреженную матрицу свойств. 6. Не влияет на существующую схему данных, т.е. можно наложить на уже готовую систему. 7. Совместимо с любой СУБД. 8. Не требует правок кода приложения. 9. Решение может быть произвольно усложнено под специфику задачи. Недостатки: 1. производительность может быть критичной. Но это на многих млн.записей. 2. Не все умеют создать качественную схему для EAV. 3. Все первичные ключи в системе должны быть однотипны и атомарны. Разнородные ключи (целое, строка, бинари) очень усложнят решение. Совокупность "+" и "-" указывают в пользу данного решения. зы: ща наползут многочисленные хейтеры EAV. Но, как всегда ничего путнего взамен не предложат. Одни эмоции и желчь. :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 09:06 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  L_argo, ЕАV каким боком к сабжу? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 09:13 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC SharpL_argo, ЕАV каким боком к сабжу?Проходи мимо. Топик не для тебя, т.к. не понимаешь озвученной проблемы. ТС озвучивает кривую полумеру: две таблицы. Такое решение имеет право на жизнь, но имеет ряд ограничений. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 10:12 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  L_argo, Разумеется. Я из тех самых кто делал EAV и больше не хочу. Из програгммистов. А ты как наверно из постановщиков. Отправь его в EAV. И мы его года 3 не увидим. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 10:19 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC SharpL_argo, Разумеется. Я из тех самых кто делал EAV и больше не хочу . Из програгммистов. А ты как наверно из постановщиков. Отправь его в EAV. И мы его года 3 не увидим.Полное соответствие тезису из моего первого поста (в конце). Никогда не поздно уйти в продавцы пылесосов. :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 10:44 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  L_argo, А желчь то из тебя полилась))) lol ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 11:10 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  >Ares_ekb, сегодня, 10:27   https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1313230&msg=21900171][21900171]  >...там уже всё сделано… <Что конкретно там сделано? Если я строю выборку по идентификационным полям сущностям Сотрудники, то все поля сущности переносятся в объект коллекции ObservableCollection или строится новый класс для сущности c урезанным числом полей?. Если строю конкретную сущность детализации, то она должна иметь все текущие поля хранимой в базе сущности? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 11:31 | 
  
  
  
   | 
||
| 
 
Работа с большими сущностями 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ВМоисеев, Есть 100 вариантов выбоки. Они все разные. Вам надо в ЯП к программистам. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 03.06.2019, 11:42 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=33&msg=39821327&tid=1547155]:  | 
    0ms | 
get settings:  | 
    11ms | 
get forum list:  | 
    14ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    69ms | 
get topic data:  | 
    11ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    61ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 232ms | 
| total: | 409ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.»
    
    
    ... бла, бла, бла ...