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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если бы Вы знаете (или есть статистика) какие параметры чаще всего входят в эти 2-3 - я бы добавил их в основную таблицу.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение объекта и набора его параметров... / 25 сообщений из 42, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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