|
|
|
Проектирование базы для последующей работы с ней без использования динамических запросов
|
|||
|---|---|---|---|
|
#18+
dma_caviarПочему нельзя в значения субконто писать не только ID справочников/документов и т.п., но и их "наименование"? Чтобы не извлекать это джоинами. наименование справочников легко вытаскивается запросом, только что это даст? через название справочников (таблиц) будет использовование его только в динамическом запросе, от чего как раз хочется уйти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 14:59 |
|
||
|
Проектирование базы для последующей работы с ней без использования динамических запросов
|
|||
|---|---|---|---|
|
#18+
вставлю свои пять копеек значения разных субконто нужны в общем виде только отображения общих отчетов и журнала проводок практически ничего кроме строкового представления от них там не требуется, ну может еще ID строки и ID типа (если вдруг строковые представления совпадут) А вот когда анализируете какой-то отдельный блок, то вы уже знаете с чем имеете дело и соединяете с нужной таблицей аналитикой: склады, товары и проч. Поэтому для значений субконто предлагаю такую схему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 15:00 |
|
||
|
Проектирование базы для последующей работы с ней без использования динамических запросов
|
|||
|---|---|---|---|
|
#18+
unimilkdma_caviarПочему нельзя в значения субконто писать не только ID справочников/документов и т.п., но и их "наименование"? Чтобы не извлекать это джоинами. наименование справочников легко вытаскивается запросом, только что это даст? через название справочников (таблиц) будет использовование его только в динамическом запросе, от чего как раз хочется уйти. Так я и предлагаю уйти от динамических. В субконто проводок у вас сейчас лежат ID справочников. А вы положите рядом еще и Name справочников (объектов и т.п.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 15:06 |
|
||
|
Проектирование базы для последующей работы с ней без использования динамических запросов
|
|||
|---|---|---|---|
|
#18+
unimilkMikle83Следующий шаг - что конкретно по каждому субконто вытаскивается? Список полей, выбираемых в итоговый датасет, по всем субконто - единый? Или можно его привести к единому виду? соответственно, список полей в итоговом датасете может быть разный , в зависимости от того с каким субконто имеем дело (con.ContragentName или dog.Dogovor, или g.good и т.д.) Т.е. у вас динамический парсер итогового датасета на стороне клиента? Который знает, какой субконто к нему вернулся и как его правильно разобрать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 15:12 |
|
||
|
Проектирование базы для последующей работы с ней без использования динамических запросов
|
|||
|---|---|---|---|
|
#18+
Mikle83Т.е. у вас динамический парсер итогового датасета на стороне клиента? Который знает, какой субконто к нему вернулся и как его правильно разобрать? нет, такого парсера нету, вопрос в том, что написать написать такой парсер без использования динамического запроса, не правя потом скл - код не получается. как написал выше коллега MasterZiv мной было нарушено правило "доменной целостности" (так понимаю в части ). Вопрос теперь стоит в том как изменить структуру базы данных, что бы исправить эту ошибку. требовании о неизменности скл-кода и кода приложения при начитке и сохранении данных остается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 17:37 |
|
||
|
Проектирование базы для последующей работы с ней без использования динамических запросов
|
|||
|---|---|---|---|
|
#18+
unimilkMikle83Т.е. у вас динамический парсер итогового датасета на стороне клиента? Который знает, какой субконто к нему вернулся и как его правильно разобрать? нет, такого парсера нету, вопрос в том, что написать написать такой парсер без использования динамического запроса, не правя потом скл - код не получается. как написал выше коллега MasterZiv мной было нарушено правило "доменной целостности" (так понимаю в части ). Вопрос теперь стоит в том как изменить структуру базы данных, что бы исправить эту ошибку. требовании о неизменности скл-кода и кода приложения при начитке и сохранении данных остается. Тогда ни разу не понял, как вы собираетесь еще и на клиенте это реализовывать? Если у вас итоговый датасет с базы контекстнозависимый = кто-то должен и на клиенте этот датасет "отрисовать" для возможности внесения изменений, или разложить этот датасет по контролам или... Что-то мне подсказывает - у вас задача несколько глубже, чем представляется сейчас и аффектит не только БД... Вообщем - посмотрите на картинку выше на этой странице - чем вас этот вариант не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 18:30 |
|
||
|
Проектирование базы для последующей работы с ней без использования динамических запросов
|
|||
|---|---|---|---|
|
#18+
MasterZivС какой стати? Т.е. 10 таблиц -- всё будет ок, а вот если вдруг 11-ую добавим -- сразу слёт крыши ? У нас тут даже СУБД в обсуждении не зафиксирована, а ты такие вещи говоришь... СУБД MS SQL Server 2008 написано же.... И да, у оптимизатора зашитая константа 10. При 10 таблицах оптимизатор вуыбирает лучший по его мнению план, при 11 и более выбирает лучший план из тех, что успел просмотреть за некоторое время. То что LEFT JOIN не дают оптимизатору неверно выбрать "левую" таблицу это да. А как быть с LOOP? Вполне на громоздких запросах может выбрать HASH, что в данном случае недопустимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 19:16 |
|
||
|
Проектирование базы для последующей работы с ней без использования динамических запросов
|
|||
|---|---|---|---|
|
#18+
unimilkКот МатроскинНет - только при добавлении нового типа субконто. Например, решаем "теперь у нас в системе могут быть субконто Контрагенты" - тогда да, надо будет переписывать запрос, чтобы добавить приведенную мной строчку. В том-то все и дело, что хочется уйти от постоянной правки запросов, при добавлении новых субконто (типов субконто). Возможно ли это ? Использовать функции (но в них получается тоже необходимо будет использовать динамические запросы ?) Либо как-то изменить структуру данных ? это возможно. но надо показать бд не так, как ты делаешь. надо использовать наследование в каком то из видов, EAV или отношение под категории. почитай про наследование, как ни странно, хорошо описано в документации по hibernate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2015, 07:52 |
|
||
|
Проектирование базы для последующей работы с ней без использования динамических запросов
|
|||
|---|---|---|---|
|
#18+
Nafвставлю свои пять копеек значения разных субконто нужны в общем виде только отображения общих отчетов и журнала проводок практически ничего кроме строкового представления от них там не требуется, ну может еще ID строки и ID типа (если вдруг строковые представления совпадут) А вот когда анализируете какой-то отдельный блок, то вы уже знаете с чем имеете дело и соединяете с нужной таблицей аналитикой: склады, товары и проч. Поэтому для значений субконто предлагаю такую схему Вот тут товарищ Naf как раз и предлагает использовать отношение подкатегории. Спасибо, товарищ ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2015, 09:09 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1540518]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
160ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 499ms |

| 0 / 0 |

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