powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение объекта и набора его параметров...
42 сообщений из 42, показаны все 2 страниц
Хранение объекта и набора его параметров...
    #35016869
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, подкиньте идею, если не трудно...
Есть в БД запись (документ, проводка, номенклатура и т.п.). Для этой записи определены ряд обязательных параметров. Со временем требуется набор этих параметров расширять... Как лучше реализовать?
1. Все параметры в одной таблице с основной записью.
2. Отдельная таблица для основных записей и отдельная для всех параметров.
3. Отдельная таблица для основных записей плюс таблица с параметрами, где для каждого значения параметра есть отдельная строка вида (запись_ID, параметр_ID, значение)...
4. Свой вариант...
Подскажите, плиз...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35017313
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу только личное мнение сказать, выбрал бы 3-й вариант, т.к. с точки зрения нормализации наиболее правильно, и удобства внесения новых параметров...
---
Проходя мимо разложенных граблей, ты теряешь драгоценный опыт. (с)
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35017320
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte, пока тоже пользуюсь третьим вариантом... Но уже возникают трудности...
Дело в том, что количество параметров постоянно растет... Таким образо количество записей в таблице параметров на порядок, а то и больше, чем в таблице основных записей... Это начинает сказываться на производительности....
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35017345
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORTЭто начинает сказываться на производительности....
Можно сравнить "бонусы" хранения конкретного параметра "методом 1" и "методом 3". Если первый метод становится лучше, и не слишком много в системе надо менять (например, отчеты), то вполне можно перенести его в основную таблицу, если уж приспичило.

По теме - обычно 3-м методом делаю только такие параметры, которые пользователь (в смысле, администратор клиента) может произвольно настраивать по своему усмотрению. Если значения участвуют в бизнес-логике, то 3-й метод не использую.
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35017393
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов TORTЭто начинает сказываться на производительности....
Можно сравнить "бонусы" хранения конкретного параметра "методом 1" и "методом 3". Если первый метод становится лучше, и не слишком много в системе надо менять (например, отчеты), то вполне можно перенести его в основную таблицу, если уж приспичило.

По теме - обычно 3-м методом делаю только такие параметры, которые пользователь (в смысле, администратор клиента) может произвольно настраивать по своему усмотрению. Если значения участвуют в бизнес-логике, то 3-й метод не использую.

Все параметры настраиваются исключительно админитратором сервера. Только их набор постоянно увеличивается (особенности работы организации, так сказать:) )... Поэтому на стадии проектирования было решено использовать все-таки 3 метод...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35017397
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошло 2 года с момента внедрения и вот теперь видно, что количество записей с такими вот параметрами весьма велико.... Это и усложняет работу...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35020093
Чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XML?
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35020332
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чендлер, хм... Думаем над этим вариантом... Интересует доступ к информации в таком случае... Нужно тестировать...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35020492
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3-й вар. ЕДИНСТВЕННЫЙ из возможных для такой задачи.
Он же и самый гибкий.

XML - не выход. Хранить то можно.....
А как же фильтрация/поиск с применением SQL ?
А отчетность с тем же SQL ? Парсить везде ????
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35020581
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORTЛюди, подкиньте идею, если не трудно...
Есть в БД запись (документ, проводка, номенклатура и т.п.). Для этой записи определены ряд обязательных параметров. Со временем требуется набор этих параметров расширять... Как лучше реализовать?
1. Все параметры в одной таблице с основной записью.
2. Отдельная таблица для основных записей и отдельная для всех параметров.
3. Отдельная таблица для основных записей плюс таблица с параметрами, где для каждого значения параметра есть отдельная строка вида (запись_ID, параметр_ID, значение)...
4. Свой вариант...
Подскажите, плиз...
Вот здесь я предложил схемку БД, в ней есть табличка Объект и Свойства. Может это то-что вам нужно?
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35020591
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправка, здесь
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35021601
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страдалецъ, ну это мой третий вариант я так понимаю...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35021819
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, что так.
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35025785
MySQLCraft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК. Оставим пока в покое рост числа записей в таблице параметров.

Для меня не очевидно другое.

1) Что такое "параметр" в данном случае?
2) Что такое "значение" параметра и что в это поле можно записать?
3) Что такое основная запись, на которую ссылаются записи из таблицы параметров?
4) По какому Принципу организуются сами основные записи?
5) На каком основании этот Принцип выбран, как основной?
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35025816
MySQLCraft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО. База на XML будет в разы тормознее любого из трех способов на одном и том же количесстве хранимых объектов. параметров, значений.
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35025964
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все зависит от механизма работы СУБД с XML-данными... Но мне также кажется, что это метод не самый лучший...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35025981
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MySQLCraft
1. Параметр - есть некое расширенное свойство объекта, причем не для всех объектов оно может быть определено.
2. В поле "Значение параметра" теоретически может содержаться любая информация... Поэтому предполагается, что это строка....
3. Основная запись - это набор полей необходимый и обязательный для всех объектов, которые хранятся в данной таблице.
4. Не понял... По-конкретнее вопрос, если можно...
5. .....
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35026628
MySQLCraft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORTMySQLCraft
1. Параметр - есть некое расширенное свойство объекта, причем не для всех объектов оно может быть определено.
2. В поле "Значение параметра" теоретически может содержаться любая информация... Поэтому предполагается, что это строка....
3. Основная запись - это набор полей необходимый и обязательный для всех объектов, которые хранятся в данной таблице.
4. Не понял... По-конкретнее вопрос, если можно...
5. .....

1) В данной постановке, является ли "отношение" расширенным свойством = параметром?
Для каких объектов параметры не могут быть определены?
2) Строка годится, как вариант.
3) Почему набор полей основной таблицы является необходимым и обязательным? Какие конкретно поля обязательны и чем они отличаются от параметров? Приведите пример реализации, ибо в предельном случае основная запись содержит только одно поле ID, оно же Primary Key.
4) Имеется ли отношение между записями в основной таблице или это линейный список?
5) Если отношение имеется, то почему оно содержится в основной таблице, чем оно особенно? см.п.1

И еще вопрос.
Мы говорим об объектах. Что понимается под объектом? Класс или экземпляр класса?
Как в данных таблицах различаются эти сущности?
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35027055
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MySQLCraft

1) В данной постановке, является ли "отношение" расширенным свойством = параметром?
Для каких объектов параметры не могут быть определены?
2) Строка годится, как вариант.
3) Почему набор полей основной таблицы является необходимым и обязательным? Какие конкретно поля обязательны и чем они отличаются от параметров? Приведите пример реализации, ибо в предельном случае основная запись содержит только одно поле ID, оно же Primary Key.
4) Имеется ли отношение между записями в основной таблице или это линейный список?
5) Если отношение имеется, то почему оно содержится в основной таблице, чем оно особенно? см.п.1

И еще вопрос.
Мы говорим об объектах. Что понимается под объектом? Класс или экземпляр класса?
Как в данных таблицах различаются эти сущности?

Объекты в моем случае - это экземпляры классов... По Вашей терминологии "различных классов, имеющих в конечном счете общего родителя". Есть набор атрибутов(параметров, в моей терминологии "расширенных параметров"), набор которых уникален в пределах класса. Более того, он изменяем в дальнейшем... Плюс, на мой взгляд важное дополнение, изменяем относительно просто и часто....
В основной записи содержаться "линейные" записи.
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35027245
MySQLCraft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORT
Объекты в моем случае - это экземпляры классов... По Вашей терминологии "различных классов, имеющих в конечном счете общего родителя". Есть набор атрибутов(параметров, в моей терминологии "расширенных параметров"), набор которых уникален в пределах класса. Более того, он изменяем в дальнейшем... В основной записи содержаться "линейные" записи.

Как я понял
- в основной таблице просто список идентификаторов экземпляров классов, плюс еще какие то поля.
- в таблице параметров, значения параметров этих экземпляров классов

А где описание самих классов и списков их параметров(свойств), где описание иерархии класов до этого самого родителя?
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35027283
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Складывается впечатление, что вы пытаетесь реализовать объектную модель БД. Но ведь для этого лучше использовать инструмент соответствующий, например Postgree.
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35027603
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один из возможных вариантов решения - использовать сервер LDAP. Эта служба, разработанная для доступа к каталогам может быть эффективно использована для хранения нерегулярной информации. Есть свободные LDAP - сервера. Говорят, что работаю достаточно быстро (хотя не поддерживают транзакций).
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35028322
drev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что чаще запрос, который выбирает значения параметров для группы документов или выбор/модификация параметров конкретного документа?
Если второе - интересна пропорция.
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35029082
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drev, чаще запрос к группе объектов + выбор 2-3 параметров для этих объектов... Тут проблема, кмк, в том, что при увеличении кол-ва типов параметров, размер таблицы с ними растет очень быстро.... Вот в этом для меня проблема этого подхода...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35029146
drev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORTdrev, чаще запрос к группе объектов + выбор 2-3 параметров для этих объектов... Тут проблема, кмк, в том, что при увеличении кол-ва типов параметров, размер таблицы с ними растет очень быстро.... Вот в этом для меня проблема этого подхода...

Если бы Вы знаете (или есть статистика) какие параметры чаще всего входят в эти 2-3 - я бы добавил их в основную таблицу.
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35029176
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drev, согласен на все 100%. Этим и приходится периодически заниматься:( ТОлько дело это довольно трудоемкое и нудное :(.... Вот и пытаюсь найти новое решение... :) Собираю, так сказать, советы....
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35034033
locdev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Раскройте секрет
сколько записей?
насколько сильно тормозит?

сам использую вариант №3 интересно когда эта структура скажется на производительности

Спасибо
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35034509
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неудобства начались, когда в основной таблице стало 1 млн. записей... А параметров в районе 12 млн. записей...
При запросе вида
select object, param1, param2..... Проседает немного, так как приходится таблицу с параметрами "шерстить" несколько раз... В моем примере 2 раза... Вот это настораживает...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35034831
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может имеет смысл посмотреть план запроса и его оптимизировать?
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35034877
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это уже делалось... Все равно время выполнения не устраивает....:(
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35037662
ПИРОГ))
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TORTЛюди, подкиньте идею, если не трудно...
Есть в БД запись (документ, проводка, номенклатура и т.п.). Для этой записи определены ряд обязательных параметров. Со временем требуется набор этих параметров расширять... Как лучше реализовать?
1. Все параметры в одной таблице с основной записью.
2. Отдельная таблица для основных записей и отдельная для всех параметров.
3. Отдельная таблица для основных записей плюс таблица с параметрами, где для каждого значения параметра есть отдельная строка вида (запись_ID, параметр_ID, значение)...
4. Свой вариант...
Подскажите, плиз...

3-й вар. хорош, только зачем отдельная табл. для основных записей??
достаточно таблицы с параметрам...
при добавлении объекта смотрим на колонку с номерами объектов, делаем max(значения объекта)
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35038054
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПИРОГ)), а как получить список объектов с некоторым набором параметров? Пример SQL-запроса, если не трудно....
P.S.: select var1, var2, var3.... from ...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35038362
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
group by рулит.
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35038390
ПИРОГ))
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TORTПИРОГ)), а как получить список объектов с некоторым набором параметров? Пример SQL-запроса, если не трудно....
P.S.: select var1, var2, var3.... from ...

самый простой вариант -
SELECT *
FROM Table1
WHERE
([Номер параметра] = 3) -- параметр - цена
AND ([Значение int] > 4000) -- цена больше 4000
AND ([Тип объекта] = 1) -- № типа объекта


асли необходимо вывести параметры для объектов в строку, то юзаем

PIVOT (2005)
или это

а так чем переборчик параметров в программе не устраивает??
Ведь фильтровать это все можно слету при помощи sql. задача только выдать список ...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35039118
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас основной "затуп" происходит при формировании списков объектов с какими-нибудь определенными параметрами... Причем запись параметра для одинакового типа объектов может быть, а может и не быть...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35039169
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TORTУ нас основной "затуп" происходит при формировании списков объектов с какими-нибудь определенными параметрами...
Индекс по значению параметра вам поможет
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35039247
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разве? По типу параметра индекс помогает...А по значению, что-то не вижу логики...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35039925
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TORTРазве? По типу параметра индекс помогает...А по значению, что-то не вижу логики...
для поиска объектов по значениям параметров
<тип объекта><тип параметра><значение параметра>
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35040309
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне надо как правило выводить объекты определенного типа с набором параметров...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35040514
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TORTМне надо как правило выводить объекты определенного типа с набором параметров...
Еще один индекс:
для поиска объектов по ид
<тип объекта><ид объекта>
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35040605
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой индекс есть... Только скорость все равно проседает...
...
Рейтинг: 0 / 0
Хранение объекта и набора его параметров...
    #35041251
Чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSV
А как же фильтрация/поиск с применением SQL ?
А отчетность с тем же SQL ? Парсить везде ????
можно использовать встроенные фичи для работы с XML, можно сразу взять нативную XML СУБД.
...
Рейтинг: 0 / 0
42 сообщений из 42, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение объекта и набора его параметров...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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