|
|
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
MasterZivВообще в мире-то глупых людей больше, чем умных. Статистика ... То есть, вариант 1) выбирают глупые люди:) А почему же прямо так не сказать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 15:23 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
_модцелостность и EAV несовместимы. сравнения нужно делать после преобразования. 90% данных в типовых системах обработки данных - строки. По количеству символов? Или по количеству типов характеристик (свойств, атрибутов) соответствующих типов? Поскольку второе корректнее, то 90% - это не верная оценка. Причем сильно не верная:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 15:29 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
> В данном случае без EAV не обойтись. Исходную задачу сформулируйте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 15:38 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
guest_20040621> В данном случае без EAV не обойтись. Исходную задачу сформулируйте. Нужно хранить сущности, которые могут иметь заданные пользователей атрибуты и иметь возможность фильтровать по ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 15:54 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
OLEG_2005При преобразовании данных, например, строк в числа, индексы использоваться уже не будут. Я храню все в строках. Есть индекс по значению. При поиске данные преобраз. в строки. Даты формата dd.mm.yyyy. Числа целые или с точкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 16:02 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
_модOLEG_2005При преобразовании данных, например, строк в числа, индексы использоваться уже не будут. Я храню все в строках. Есть индекс по значению. При поиске данные преобраз. в строки. Даты формата dd.mm.yyyy. Числа целые или с точкой. Не понятно, как ты ищешь в BLOB значения и поддерживаешь целостность данных. Ненормализованные данные - это не очень здорово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 16:05 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
> Нужно хранить сущности, которые могут иметь заданные пользователей атрибуты и иметь возможность фильтровать по ним. ;) А, вечный двигатель. Понятно. Я бы не отдавал пользователю возможность определять что бы то ни было в базе данных. Но если без этого никак, то как хранить значения - на мой взгляд - определяющей роли не играет, проверки при добавлении данных достаточно. Мне кажется, пользовательские атрибуты - это уже мусор, с чем бы он ни был связан, он мусором и останется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 16:27 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
OLEG_2005, храни в еав по типам данных, держи метаданные отдельно формируй выпрямляющую команду (лучше в динамике с изменением кол атрибутов и храни) и и делай что как хошь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 16:28 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
ViPRosMasterZivOn 17.12.2010 3:12, ViPRos wrote: > NULL тут нефиг хранить Если в одной строке хранить один атрибут, а полей в строке столько, сколько возможных типов данных атбирутов, то остальные поля, кроме поля с типом данного атрибута будут NULL. Я NULL не храню, храню метаданные об атрибутном составе Это как это ? Ну ка поясни ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 17:20 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Нужно хранить сущности, которые могут иметь заданные пользователей атрибуты и иметь возможность фильтровать по ним. ;) А, вечный двигатель. Понятно. Я бы не отдавал пользователю возможность определять что бы то ни было в базе данных. Но если без этого никак, то как хранить значения - на мой взгляд - определяющей роли не играет, проверки при добавлении данных достаточно. Мне кажется, пользовательские атрибуты - это уже мусор, с чем бы он ни был связан, он мусором и останется. Мне кажется, что проверка типов на уровне БД вряд ли бывает лишней в любом случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 17:24 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
> проверка типов на уровне БД вряд ли бывает лишней в любом случае Конечно. Хотел подчеркнуть, что если мусор уже есть, то стоит ли бороться за его идеальную чистоту? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 18:03 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
MasterZiv, ну че тут не ясно? Атрибуты объекта хранятся отдельно Есть идентифицированный Объект Есть таблица типизированных Атрибутов этого Объекта При появлении нового Атрибута он включается в список типизированных атрибутов Объекта а соответствующую по типу ЕАВ таблицу добавляется Имя и Значение этого Атрибута потихоньку все это фиговина динамически типизируется и превращется в статическую структуру в БД всегда сосуществуют типизированные, частично типизированные и не типизированные Объекты все мтоды доступа генерятся автоматом хранятся по мере прихода объектов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 18:13 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
guest_20040621> проверка типов на уровне БД вряд ли бывает лишней в любом случае Конечно. Хотел подчеркнуть, что если мусор уже есть, то стоит ли бороться за его идеальную чистоту? Не понятно, что вы называете мусором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2010, 20:56 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
OLEG_2005В данном случае без EAV не обойтись. тяжело даже придумать такие случаи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2010, 01:54 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
OLEG_2005guest_20040621> В данном случае без EAV не обойтись. Исходную задачу сформулируйте. Нужно хранить сущности, которые могут иметь заданные пользователей атрибуты и иметь возможность фильтровать по ним. просто задайте требуемые пользователю атрибуты. Наверное нет более проблемной выдумки чем EAV, но насколько популярен... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2010, 01:56 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
любые варианты получения золота из ртути так и останутся алхимией. Равно как и извраты, типа получения типа "объектов" из РБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2010, 02:03 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
> Не понятно, что вы называете мусором. Написал чуть выше: "пользовательские атрибуты - это уже мусор, с чем бы он ни был связан, он мусором и останется". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2010, 04:46 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
> тяжело даже придумать такие случаи Легко. Нормальный способ для хранения, например, переменных. Правда, структура сильно сложнее подразумеваемой, но в целом идея та же. Пример из жизни - ставка рефинансирования. Это не таймсерия, поскольку изменения не регулярны, разные финансовые институты оперируют разными моделями рынков и разными ставками, которые меняются не синхронно. По-другому действительно никак. Но в данном случае шаловливые ручонки юзеров не оказывают влияние на качество структуры данных, так что проблем нет. > Равно как и извраты, типа получения типа "объектов" из РБД Изврат - это использовать "объектную" терминологию. Судя по этому форуму, люди, которые это делают, слабо понимают смысл определения "объектный". Речь идет, как правило, о типизированных сущностях и связях, что никакого отношения к объектам, конечно, не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2010, 05:01 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
iscrafmOLEG_2005В данном случае без EAV не обойтись. тяжело даже придумать такие случаи. Пример: списки объектов (пользователей), каждый список хранить - набор пользовательских атрибутов, которые должны храниться для каждого пользователя списка. То есть все пользователи имеют постоянные атрибуты - общие для всех список, а есть атрибуты специфичные для списка. Допустим во всех списках всех атрибутов есть общий атрибут: email_address. Допустим в списке List1 есть пользовательский атрибуты: FirstName, LastName, Age. Допустим в списке List2 есть пользовательский атрибуты: Date_Birth, Weight, Height. В списке List3 вообще нет пользовательских атрибутов. Для списка List1 мы должны хранить: email_address FirstName LastName Age test Vasya Ivanov 20 Для списка List2 мы должны хранить: email_address Date_Birt Weight Height test1 1983.03.09 80 185 Для списка List3: email_address test3 Списки атрибутов для каждого списка могут задаваться пользователем, они могут быть разными, так как назначение списков могут быть очень разными. Предполагается, что типы атрибутов будут одного из типов пока: строковые, числовые и дата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2010, 10:30 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
> Пример: списки объектов (пользователей) Задача решается стандартным набором атрибутов, исчерпывающе полно описывающих пользователей. Юзеры могут поддерживать актуальность только тех данных, которые необходимы. В данном случае сложность может представлять только группировка этих атрибутов (антропометрические, социальные, коммуникативные, профессиональные и пр.), что при известном навыке задача вполне решаемая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2010, 10:54 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Пример: списки объектов (пользователей) Задача решается стандартным набором атрибутов, исчерпывающе полно описывающих пользователей. Юзеры могут поддерживать актуальность только тех данных, которые необходимы. В данном случае сложность может представлять только группировка этих атрибутов (антропометрические, социальные, коммуникативные, профессиональные и пр.), что при известном навыке задача вполне решаемая. Набор атрибутов заранее не определен и от списка к списку он может сильно отличаться. Задать набор атрибутов на все случае жизни в данном случае не представляется возможным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2010, 10:58 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Пример: списки объектов (пользователей) Задача решается стандартным набором атрибутов, исчерпывающе полно описывающих пользователей. Юзеры могут поддерживать актуальность только тех данных, которые необходимы. В данном случае сложность может представлять только группировка этих атрибутов (антропометрические, социальные, коммуникативные, профессиональные и пр.), что при известном навыке задача вполне решаемая. Так как набор атрибутов заранее не определено, то и паттерны вроде Single Table Inheritance, Concrete Table Inheritance и т. д. здесь применить не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2010, 11:03 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
> Задать набор атрибутов на все случае жизни в данном случае не представляется возможным. Это стандартная отговорка. В данном случае в зависимости от конечной задачи набор атрибутов будет разным, но конечным. С одной стороны он ограничен требованями о защите персональных данных (которые будут различаться от государства к государству), с другой - практической целесообразностью. > то и паттерны вроде Слово "паттерны" применительно к проектированию баз данных придумали бараны. Есть смысл решать задачи, а не повторять чужие ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2010, 11:37 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
OLEG_2005Пример: списки объектов (пользователей), каждый список хранить - набор пользовательских атрибутов, которые должны храниться для каждого пользователя списка. То есть все пользователи имеют постоянные атрибуты - общие для всех список, а есть атрибуты специфичные для списка. Допустим во всех списках всех атрибутов есть общий атрибут: email_address. Допустим в списке List1 есть пользовательский атрибуты: FirstName, LastName, Age. Допустим в списке List2 есть пользовательский атрибуты: Date_Birth, Weight, Height. В списке List3 вообще нет пользовательских атрибутов. Для списка List1 мы должны хранить: email_address FirstName LastName Age test Vasya Ivanov 20 Для списка List2 мы должны хранить: email_address Date_Birt Weight Height test1 1983.03.09 80 185 Для списка List3: email_address test3 Списки атрибутов для каждого списка могут задаваться пользователем, они могут быть разными, так как назначение списков могут быть очень разными. Предполагается, что типы атрибутов будут одного из типов пока: строковые, числовые и дата. Для этого EAV, конечно, не нужна. Видимо, одна из Ваших задач, обязательно использовать некую "реляционную" СУБД, в которой пользователи не могут добавлять сколько угодно характеристик объекта, и как угодно их группировать. И именно поэтому Вам приходится смотреть в сторону EAV. EAV имела бы, по крайней мере, теоретическое обоснование, если пользователям нужно постоянно произвольно добавлять отношения (таблицы) (или "классы", хотя, хорошо известно, что "таблица" в реляционной системе - это не "класс" в объектной). То есть, объекты, а не характеристики объектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2010, 11:41 |
|
||
|
Как лучше хранить значения атрибутов разных типов в EAV
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Задать набор атрибутов на все случае жизни в данном случае не представляется возможным. Это стандартная отговорка. В данном случае в зависимости от конечной задачи набор атрибутов будет разным, но конечным. С одной стороны он ограничен требованями о защите персональных данных (которые будут различаться от государства к государству), с другой - практической целесообразностью. > то и паттерны вроде Слово "паттерны" применительно к проектированию баз данных придумали бараны. Есть смысл решать задачи, а не повторять чужие ошибки. Набор возможных атрибутов может и конечный, но довольно большой и заранее предугадать его не представляется возможным. Представьте себе десятки тысяч пользователей, которые используют списки для своей предметной области, они работают в разных отраслях и соответственно набор атрибутов разный. Кто-то использует списка для того, чтобы делать рассылку пользователям о фильмах и набор атрибутов может описывать предпочтения по поводу фильмов, для рассылки информации о ПО набор атрибутов может быть другой, вариантов может быть очень много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2010, 11:44 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37022116&tid=1542393]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
155ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 459ms |

| 0 / 0 |
