|
|
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Люди, подкиньте идею, если не трудно... Есть в БД запись (документ, проводка, номенклатура и т.п.). Для этой записи определены ряд обязательных параметров. Со временем требуется набор этих параметров расширять... Как лучше реализовать? 1. Все параметры в одной таблице с основной записью. 2. Отдельная таблица для основных записей и отдельная для всех параметров. 3. Отдельная таблица для основных записей плюс таблица с параметрами, где для каждого значения параметра есть отдельная строка вида (запись_ID, параметр_ID, значение)... 4. Свой вариант... Подскажите, плиз... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 11:06 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Могу только личное мнение сказать, выбрал бы 3-й вариант, т.к. с точки зрения нормализации наиболее правильно, и удобства внесения новых параметров... --- Проходя мимо разложенных граблей, ты теряешь драгоценный опыт. (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 12:49 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Megabyte, пока тоже пользуюсь третьим вариантом... Но уже возникают трудности... Дело в том, что количество параметров постоянно растет... Таким образо количество записей в таблице параметров на порядок, а то и больше, чем в таблице основных записей... Это начинает сказываться на производительности.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 12:51 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
TORTЭто начинает сказываться на производительности.... Можно сравнить "бонусы" хранения конкретного параметра "методом 1" и "методом 3". Если первый метод становится лучше, и не слишком много в системе надо менять (например, отчеты), то вполне можно перенести его в основную таблицу, если уж приспичило. По теме - обычно 3-м методом делаю только такие параметры, которые пользователь (в смысле, администратор клиента) может произвольно настраивать по своему усмотрению. Если значения участвуют в бизнес-логике, то 3-й метод не использую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 12:59 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов TORTЭто начинает сказываться на производительности.... Можно сравнить "бонусы" хранения конкретного параметра "методом 1" и "методом 3". Если первый метод становится лучше, и не слишком много в системе надо менять (например, отчеты), то вполне можно перенести его в основную таблицу, если уж приспичило. По теме - обычно 3-м методом делаю только такие параметры, которые пользователь (в смысле, администратор клиента) может произвольно настраивать по своему усмотрению. Если значения участвуют в бизнес-логике, то 3-й метод не использую. Все параметры настраиваются исключительно админитратором сервера. Только их набор постоянно увеличивается (особенности работы организации, так сказать:) )... Поэтому на стадии проектирования было решено использовать все-таки 3 метод... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 13:13 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Прошло 2 года с момента внедрения и вот теперь видно, что количество записей с такими вот параметрами весьма велико.... Это и усложняет работу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 13:15 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
XML? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 13:12 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Чендлер, хм... Думаем над этим вариантом... Интересует доступ к информации в таком случае... Нужно тестировать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:05 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
3-й вар. ЕДИНСТВЕННЫЙ из возможных для такой задачи. Он же и самый гибкий. XML - не выход. Хранить то можно..... А как же фильтрация/поиск с применением SQL ? А отчетность с тем же SQL ? Парсить везде ???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:38 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
TORTЛюди, подкиньте идею, если не трудно... Есть в БД запись (документ, проводка, номенклатура и т.п.). Для этой записи определены ряд обязательных параметров. Со временем требуется набор этих параметров расширять... Как лучше реализовать? 1. Все параметры в одной таблице с основной записью. 2. Отдельная таблица для основных записей и отдельная для всех параметров. 3. Отдельная таблица для основных записей плюс таблица с параметрами, где для каждого значения параметра есть отдельная строка вида (запись_ID, параметр_ID, значение)... 4. Свой вариант... Подскажите, плиз... Вот здесь я предложил схемку БД, в ней есть табличка Объект и Свойства. Может это то-что вам нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:52 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Поправка, здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:54 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Страдалецъ, ну это мой третий вариант я так понимаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 18:50 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Похоже, что так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 21:15 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
ОК. Оставим пока в покое рост числа записей в таблице параметров. Для меня не очевидно другое. 1) Что такое "параметр" в данном случае? 2) Что такое "значение" параметра и что в это поле можно записать? 3) Что такое основная запись, на которую ссылаются записи из таблицы параметров? 4) По какому Принципу организуются сами основные записи? 5) На каком основании этот Принцип выбран, как основной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 11:54 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
ИМХО. База на XML будет в разы тормознее любого из трех способов на одном и том же количесстве хранимых объектов. параметров, значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 12:01 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Все зависит от механизма работы СУБД с XML-данными... Но мне также кажется, что это метод не самый лучший... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 12:40 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
MySQLCraft 1. Параметр - есть некое расширенное свойство объекта, причем не для всех объектов оно может быть определено. 2. В поле "Значение параметра" теоретически может содержаться любая информация... Поэтому предполагается, что это строка.... 3. Основная запись - это набор полей необходимый и обязательный для всех объектов, которые хранятся в данной таблице. 4. Не понял... По-конкретнее вопрос, если можно... 5. ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 12:44 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
TORTMySQLCraft 1. Параметр - есть некое расширенное свойство объекта, причем не для всех объектов оно может быть определено. 2. В поле "Значение параметра" теоретически может содержаться любая информация... Поэтому предполагается, что это строка.... 3. Основная запись - это набор полей необходимый и обязательный для всех объектов, которые хранятся в данной таблице. 4. Не понял... По-конкретнее вопрос, если можно... 5. ..... 1) В данной постановке, является ли "отношение" расширенным свойством = параметром? Для каких объектов параметры не могут быть определены? 2) Строка годится, как вариант. 3) Почему набор полей основной таблицы является необходимым и обязательным? Какие конкретно поля обязательны и чем они отличаются от параметров? Приведите пример реализации, ибо в предельном случае основная запись содержит только одно поле ID, оно же Primary Key. 4) Имеется ли отношение между записями в основной таблице или это линейный список? 5) Если отношение имеется, то почему оно содержится в основной таблице, чем оно особенно? см.п.1 И еще вопрос. Мы говорим об объектах. Что понимается под объектом? Класс или экземпляр класса? Как в данных таблицах различаются эти сущности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 15:22 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
MySQLCraft 1) В данной постановке, является ли "отношение" расширенным свойством = параметром? Для каких объектов параметры не могут быть определены? 2) Строка годится, как вариант. 3) Почему набор полей основной таблицы является необходимым и обязательным? Какие конкретно поля обязательны и чем они отличаются от параметров? Приведите пример реализации, ибо в предельном случае основная запись содержит только одно поле ID, оно же Primary Key. 4) Имеется ли отношение между записями в основной таблице или это линейный список? 5) Если отношение имеется, то почему оно содержится в основной таблице, чем оно особенно? см.п.1 И еще вопрос. Мы говорим об объектах. Что понимается под объектом? Класс или экземпляр класса? Как в данных таблицах различаются эти сущности? Объекты в моем случае - это экземпляры классов... По Вашей терминологии "различных классов, имеющих в конечном счете общего родителя". Есть набор атрибутов(параметров, в моей терминологии "расширенных параметров"), набор которых уникален в пределах класса. Более того, он изменяем в дальнейшем... Плюс, на мой взгляд важное дополнение, изменяем относительно просто и часто.... В основной записи содержаться "линейные" записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 17:23 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
TORT Объекты в моем случае - это экземпляры классов... По Вашей терминологии "различных классов, имеющих в конечном счете общего родителя". Есть набор атрибутов(параметров, в моей терминологии "расширенных параметров"), набор которых уникален в пределах класса. Более того, он изменяем в дальнейшем... В основной записи содержаться "линейные" записи. Как я понял - в основной таблице просто список идентификаторов экземпляров классов, плюс еще какие то поля. - в таблице параметров, значения параметров этих экземпляров классов А где описание самих классов и списков их параметров(свойств), где описание иерархии класов до этого самого родителя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 18:49 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Складывается впечатление, что вы пытаетесь реализовать объектную модель БД. Но ведь для этого лучше использовать инструмент соответствующий, например Postgree. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 19:15 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Один из возможных вариантов решения - использовать сервер LDAP. Эта служба, разработанная для доступа к каталогам может быть эффективно использована для хранения нерегулярной информации. Есть свободные LDAP - сервера. Говорят, что работаю достаточно быстро (хотя не поддерживают транзакций). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2007, 00:49 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
Что чаще запрос, который выбирает значения параметров для группы документов или выбор/модификация параметров конкретного документа? Если второе - интересна пропорция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2007, 11:49 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
drev, чаще запрос к группе объектов + выбор 2-3 параметров для этих объектов... Тут проблема, кмк, в том, что при увеличении кол-ва типов параметров, размер таблицы с ними растет очень быстро.... Вот в этом для меня проблема этого подхода... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 08:58 |
|
||
|
Хранение объекта и набора его параметров...
|
|||
|---|---|---|---|
|
#18+
TORTdrev, чаще запрос к группе объектов + выбор 2-3 параметров для этих объектов... Тут проблема, кмк, в том, что при увеличении кол-ва типов параметров, размер таблицы с ними растет очень быстро.... Вот в этом для меня проблема этого подхода... Если бы Вы знаете (или есть статистика) какие параметры чаще всего входят в эти 2-3 - я бы добавил их в основную таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 09:46 |
|
||
|
|

start [/forum/topic.php?fid=32&startmsg=35016869&tid=1544105]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
163ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 442ms |

| 0 / 0 |
