powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование базы для последующей работы с ней без использования динамических запросов
9 сообщений из 34, страница 2 из 2
Проектирование базы для последующей работы с ней без использования динамических запросов
    #39003530
unimilk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dma_caviarПочему нельзя в значения субконто писать не только ID справочников/документов и т.п., но и их "наименование"? Чтобы не извлекать это джоинами.

наименование справочников легко вытаскивается запросом, только что это даст? через название справочников (таблиц) будет использовование его только в динамическом запросе, от чего как раз хочется уйти.
...
Рейтинг: 0 / 0
Проектирование базы для последующей работы с ней без использования динамических запросов
    #39003535
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вставлю свои пять копеек

значения разных субконто нужны в общем виде только отображения общих отчетов и журнала проводок
практически ничего кроме строкового представления от них там не требуется, ну может еще ID строки и ID типа (если вдруг строковые представления совпадут)
А вот когда анализируете какой-то отдельный блок, то вы уже знаете с чем имеете дело и соединяете с нужной таблицей аналитикой: склады, товары и проч.
Поэтому для значений субконто предлагаю такую схему
...
Рейтинг: 0 / 0
Проектирование базы для последующей работы с ней без использования динамических запросов
    #39003556
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unimilkdma_caviarПочему нельзя в значения субконто писать не только ID справочников/документов и т.п., но и их "наименование"? Чтобы не извлекать это джоинами.

наименование справочников легко вытаскивается запросом, только что это даст? через название справочников (таблиц) будет использовование его только в динамическом запросе, от чего как раз хочется уйти.
Так я и предлагаю уйти от динамических.
В субконто проводок у вас сейчас лежат ID справочников. А вы положите рядом еще и Name справочников (объектов и т.п.).
...
Рейтинг: 0 / 0
Проектирование базы для последующей работы с ней без использования динамических запросов
    #39003565
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unimilkMikle83Следующий шаг - что конкретно по каждому субконто вытаскивается? Список полей, выбираемых в итоговый датасет, по всем субконто - единый? Или можно его привести к единому виду?

соответственно, список полей в итоговом датасете может быть разный , в зависимости от того с каким субконто имеем дело (con.ContragentName или dog.Dogovor, или g.good и т.д.)

Т.е. у вас динамический парсер итогового датасета на стороне клиента?
Который знает, какой субконто к нему вернулся и как его правильно разобрать?
...
Рейтинг: 0 / 0
Проектирование базы для последующей работы с ней без использования динамических запросов
    #39003810
unimilk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mikle83Т.е. у вас динамический парсер итогового датасета на стороне клиента?
Который знает, какой субконто к нему вернулся и как его правильно разобрать?

нет, такого парсера нету, вопрос в том, что написать написать такой парсер без использования динамического запроса, не правя потом скл - код не получается.
как написал выше коллега MasterZiv мной было нарушено правило "доменной целостности" (так понимаю в части ). Вопрос теперь стоит в том как изменить структуру базы данных, что бы исправить эту ошибку. требовании о неизменности скл-кода и кода приложения при начитке и сохранении данных остается.
...
Рейтинг: 0 / 0
Проектирование базы для последующей работы с ней без использования динамических запросов
    #39003888
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unimilkMikle83Т.е. у вас динамический парсер итогового датасета на стороне клиента?
Который знает, какой субконто к нему вернулся и как его правильно разобрать?

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


Тогда ни разу не понял, как вы собираетесь еще и на клиенте это реализовывать?
Если у вас итоговый датасет с базы контекстнозависимый = кто-то должен и на клиенте этот датасет "отрисовать" для возможности внесения изменений, или разложить этот датасет по контролам или...

Что-то мне подсказывает - у вас задача несколько глубже, чем представляется сейчас и аффектит не только БД...

Вообщем - посмотрите на картинку выше на этой странице - чем вас этот вариант не устраивает?
...
Рейтинг: 0 / 0
Проектирование базы для последующей работы с ней без использования динамических запросов
    #39003915
так зашёл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivС какой стати? Т.е. 10 таблиц -- всё будет ок, а вот если вдруг 11-ую добавим -- сразу слёт крыши ?
У нас тут даже СУБД в обсуждении не зафиксирована, а ты такие вещи говоришь...

СУБД MS SQL Server 2008 написано же....
И да, у оптимизатора зашитая константа 10. При 10 таблицах оптимизатор вуыбирает лучший по его мнению план, при 11 и более выбирает лучший план из тех, что успел просмотреть за некоторое время.
То что LEFT JOIN не дают оптимизатору неверно выбрать "левую" таблицу это да. А как быть с LOOP? Вполне на громоздких запросах может выбрать HASH, что в данном случае недопустимо.
...
Рейтинг: 0 / 0
Проектирование базы для последующей работы с ней без использования динамических запросов
    #39005223
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unimilkКот МатроскинНет - только при добавлении нового типа субконто. Например, решаем "теперь у нас в системе могут быть субконто Контрагенты" - тогда да, надо будет переписывать запрос, чтобы добавить приведенную мной строчку.


В том-то все и дело, что хочется уйти от постоянной правки запросов, при добавлении новых субконто (типов субконто). Возможно ли это ? Использовать функции (но в них получается тоже необходимо будет использовать динамические запросы ?) Либо как-то изменить структуру данных ?

это возможно.
но надо показать бд не так, как ты делаешь.
надо использовать наследование в каком то из видов, EAV или отношение под категории.

почитай про наследование, как ни странно, хорошо описано в документации по hibernate.
...
Рейтинг: 0 / 0
Проектирование базы для последующей работы с ней без использования динамических запросов
    #39005568
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafвставлю свои пять копеек

значения разных субконто нужны в общем виде только отображения общих отчетов и журнала проводок
практически ничего кроме строкового представления от них там не требуется, ну может еще ID строки и ID типа (если вдруг строковые представления совпадут)
А вот когда анализируете какой-то отдельный блок, то вы уже знаете с чем имеете дело и соединяете с нужной таблицей аналитикой: склады, товары и проч.
Поэтому для значений субконто предлагаю такую схему


Вот тут товарищ Naf как раз и предлагает использовать отношение подкатегории.
Спасибо, товарищ !
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование базы для последующей работы с ней без использования динамических запросов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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