|
Работа с большими сущностями
|
|||
---|---|---|---|
#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&fpage=4&tid=1547155]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 162ms |
0 / 0 |