|
|
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
есть объекты, например вооружение, каждый объект имеет свой класс со своим свойтсвами. Делаю БД по ведению значений храрактеристик этих объектов Поделитесь опытом, как лучше всего реализовать структуру БД для этого случая. Я думаю, попытаться сделать аналогично описанию классов в языках программирования. Т.е. есть класс у него базовые свойсва, а в наследуемых классах свойства присутствуют класса родителя плюс свои Какие есть еще варианты, и какие могут быть сложности с реализацией такого варианта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2012, 14:49 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
PG81Поделитесь опытом, как лучше всего реализовать структуру БД для этого случая. По моему опыту, для характеристик лучше всего использовать EAV. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2012, 14:57 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, а по русски как такая схема называется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2012, 15:10 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Может EAV не очень подойдет, так как классов описания будет несколько милионов? Будет ли это все нормально работать на MS SQL Server 2005 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2012, 15:12 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
PG81а по русски как такая схема называется? "Схема имени Тенцера". У самого Тенцера она как раз работает на MS SQL и миллионах номенклатуры. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2012, 15:51 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
PG81Я думаю, попытаться сделать аналогично описанию классов в языках программирования. в языках программирования все объекты одного класса хранятся в одном списке или массиве. В БД аналог: один класс- одна таблица. Подходит ? Если нет, то как сказано : EAV. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2012, 16:21 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Вам эта база для чего, чтобы была или для работы (искать, вставлять, изменять, делать отчеты...) Если чтобы была - то вперед в EAV. (ищите здесь на форуме все по слову EAV) Если для работы тогда метод сущность-связь (ER) PG81Может EAV не очень подойдет, так как классов описания будет несколько милионов?Сдается мне, что вы слегка преувеличиваете. Я не могу представить себе работу с базой в миллионы связанных таблиц. С другой стороны миллионы экземпляров вполне возможны. PG81Я думаю, попытаться сделать аналогично описанию классов в языках программирования.Плохое начало. В языках программирования во главу угла ставятся функции (код), а в БД данные. PG81Т.е. есть класс у него базовые свойсва, а в наследуемых классах свойства присутствуют класса родителя плюс свои На вашем месте, я бы сначала расписал все известные классы по типу ER (один класс- одна таблица) без абстрактрых и только потом вытащил повторяющиеся части в общие таблицы предки. Это не упростит, а усложнит схему, ухудшит (в лучшем случае незначительно) производительность, но облегчит понимание структуры новыми людьми и ее модификацию. PG81Будет ли это все нормально работать на MS SQL Server 2005 А какой смысл использовать устаревшую (не 2012, не 2008R2, не 2008) версию для нового проекта? А работать будет как сделаешь, от бренда СУБД зависит мало. PG81Какие есть еще вариантыЕсли задача не суперсекретная, то можешь выложить сюда описание поподробнее, плюс свою реализацию и мы можем накидать примерную схему, отловить грубые ошибки в реализации, подсказать возможные проблемы для негрубых ошибок и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2012, 19:37 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
несколько миллионов классов. не могу представить себе такую классификацию. можно пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2012, 09:13 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
ЕАВ однозначно. Решается в 5-6 таблиц. Возможности настроек неограничены и не требуют перепрограммирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2012, 11:06 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
SERG1257, kmaw чет с милионом я загнул, несколько тысяч. благодарю за развернутый ответ. вот еще статья на тему http://foxserver.narod.ru/tenser.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2012, 14:42 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Да видел я этого вашего Тенцера, даже реализовывал. Наряду с "универсальным" справочником (одна таблица на все справочники) это "открытие" делал, наверное, каждый. У этой схемы только одно достоинство - добавление таблицы или поля делается без DDL (уменьшение количества таблиця достоинством не считаю). А вот недостатков выше крыши (поиском по форуму они ищутся). Короче нишевое решение для всяких определяемых пользователем свойств или справочников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 03:52 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
PG81, ну вот, от нескольких миллионов осталось несколько тысяч - в 1000 раз меньше. а теперь, если проанализировать детально реалии конкретного ТЗ, то наверное несколько тысяч уменьшится до около тысячи. при этом с каждым типом наверняка будет связано множество специфических индивидуальных или специфических родовых ограничений, и это может быть не просто каталог, а нечто более сложное. поэтому "легкое и быстрое" добавление записей в EAV-структуру (об "автомате" и "пистолете") все равно потребует "долгой и тяжелой" реализации этих ограничений в BLL. так что смысла в использовании EAV лично я не вижу - теряются преимущества нормальной реляционной схемы и добавляется масса гемороя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 07:18 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
SERG1257нишевое решение для всяких определяемых пользователем свойств А теперь перечитываем сабж и видим там те самые определяемые пользователем свойства, они же - характеристики. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 11:45 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
SERG1257 У этой схемы только одно достоинство - добавление таблицы или поля делается без DDL (уменьшение количества таблиця достоинством не считаю). А вот недостатков выше крыши (поиском по форуму они ищутся). Короче нишевое решение для всяких определяемых пользователем свойств или справочников. Добавление таблицы без DDL - не единственное и даже не главное достоинство EAV. Главное - это базовая обработка нового типа обьектов вообще без написания какого-либо кода (не только DDL). А то что оно не везде уместно - ну ясное дело. С любым инструментом так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 12:00 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинГлавное - это базовая обработка нового типа обьектов вообще без написания какого-либо кода (не только DDL).Это вполне и без EAV достигается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 15:39 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov А теперь перечитываем сабж и видим там те самые определяемые пользователем свойства, они же - характеристики. Еще раз перечитал топик. ТС просит помощи в создании базы объектов. Не заметил требований максимальной кастомизации на местах а ля 1С. Во избежании разночтений, еще раз прошу ТС дать подробности. Кот Матроскин Главное - это базовая обработка нового типа обьектов вообще без написания какого-либо кодаТо что форму, ввода, поиска, редактирования, отчеты будет делать местный кастомизатор, а не программист, не значит "без написания какого-либо кода" Еще раз повторю: в качестве заплатки, "сопли", нужной еще вчера, ЕАВ вполне уместен. Но делать соплю в новом проекте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 17:14 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
SERG1257ТС просит помощи в создании базы объектов. Причем с наследованием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 17:34 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
SERG1257ТС просит помощи в создании базы объектов. Не заметил требований максимальной кастомизации на местах а ля 1С. "Кастомизация на местах" тут вовсе ни при чём. ТС просил совета у людей с опытом хранения характеристик объектов в БД. Согласно моему опыту , EAV для этого подходит лучше остальных способов. А что говорит тебе твой опыт? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 18:36 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov"Кастомизация на местах" тут вовсе ни при чём. ТС просил совета у людей с опытом хранения характеристик объектов в БД. Согласно моему опыту , EAV для этого подходит лучше остальных способов. А что говорит тебе твой опыт? Не знаю насчет опыта у SERG1257, а мой опыт говорит, что EAV подходит только для хранения характеристик. Если в системе предполагается с этими харктеристиками делать хоть что-то еще кроме хранения, то есть решения лучше EAV. А если говорить исключительно о хранении, то еще меньше кода потребуется для хранения характеристик в xml, например. Только не считайте это - советом. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 22:57 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andreyесли говорить исключительно о хранении, то еще меньше кода потребуется для хранения характеристик в xml, например Ну, в EAV их ещё чуть-чуть искать можно с использованием индексов, что для XML несколько тяжелее. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 00:23 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
А мой опыт говорит что умение коротко, ясно, недвусмысленно, понятно всем формулировать задачу есть великий и редкий талант. Хрустальный шар подсказывает, что перед ТС стоит задача ведения базы таки объектов, сложной со множеством характеристик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 03:53 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey Это вполне и без EAV достигается. Это достигается "без EAV", да, но накладные расходы при этом обычно еще выше, чем у EAV. SERG1257 То что форму, ввода, поиска, редактирования, отчеты будет делать местный кастомизатор, а не программист Какую форму? какой кастомизатор? Вы вообще о чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 17:18 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинЭто достигается "без EAV", да, но накладные расходы при этом обычно еще выше, чем у EAV.Чьи накладные расходы и на что? Может быть хотя бы пример приведете чтобы легко решалось с EAV и тяжело без него? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 17:52 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Bogdanov AndreyЧьи накладные расходы и на что? Может быть хотя бы пример приведете чтобы легко решалось с EAV и тяжело без него?Качественный ЕАВ можно сделать один раз и использовать всю жизнь. По сабжу - самое оно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 18:45 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey, Накладные расходы - на сопровождение и развитие системы(включая и проблемы с проиводительностью, и с написанием дополнительных фич в дальнейшем, и т.п.) Пример - ну вот пример, котрый привел ТС в начале дискуссии - потенциальное наличие в системе нескольких миллионов разных типов сущностей. Стандартные операции по ним - сохранение, извлечение, поиск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 19:02 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Извеняюсь за отсутсвие, считал дискуссию законченной. Вообще-то не представляю, как можно релаизовать это все по другому, кроме как ЕАВ в упрощенном виде БД должна иметь следующий вид 1)Object(ID,Name,TypeID) 2)Type(ID,Name) 3)Сharacteristic(ID,Name,Restrictions) 4)ObjectCharacteristic(ObjectID,СharacteristicID,Value) 5)TypeCharacteristic(ObjectID,СharacteristicID) Реализовать добавление, удаление, поиск данных через хранимки. Под полем Restrictions я подразумеваю совокупность полей для описания различных ограничений по вводу данных, на основании которрых можно реализовать ограничения при вводе на клиенте и может быть проверку при сохранении в БД в хранимках. Характеристики типа объекта должны быть заполнены у каждого объекта данного типа Ограничений на зависимсоти между характеристиками вводить не предполагается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 22:02 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин Какую форму? какой кастомизатор? Вы вообще о чем?Данные в дополнительных полях вводить как? Проверять введеное, использовать в расчетах, фильтровать, выводить в отчетах... если это не код то что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 05:55 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
2PG81 Чтоже всяк сам себе злобный буратино. Хотите мрачных прогнозов? Вы делаете свою систему - все работает, все довольны. Вьюхи указанные в статье вы тоже делаете - без них отчеты будет лепить напряжно и люди лучше понимают. Дальше вас ждет проблема производительности - чем шире таблицы тем дольше идет выборка каждой строки. Дальше в чью-нибудь светлую голову приходит идея вьюхи материализовать и индексировать - проблемы производительности уходят, но легкость добавления новой характеристики ограничивается перелопачиванием всего кода, где используется вьюха. Дальше в результате чьей-либо халатности происходит ошибка в ключах - строка плохо добавилась, удвоилась, или недоудалилась и т.д. Промучившись с чисткой возникает идея навернуть ограничения целостности на материализованные вьюхи чтобы отловить баг хотя бы на момент синхронизации. Вуаля - имеем систему реализующую недостатки обоих подходов, занимающую вдвое больше места. Возможно вы избежите указанных выше граблей, но чем нужнее система, чем больше народу с ней работает, тем тяжелее проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 07:09 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
PG81, Оценку реальную количества классов получили? Оценку количества свойств? Нет ли явного родства между классами (наследование)? >Под полем Restrictions я подразумеваю совокупность полей для описания различных ограничений по вводу данных плохое решение - в лучшем случае получится псевдореляционная недобаза внутри и так уже по определению нормальной реляционной БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 07:40 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
SERG12572PG81 Чтоже всяк сам себе злобный буратино. Хотите мрачных прогнозов? не надо мыслить только в рамках программного решения проблемы. до вьюх всё праильно написали, а вот дальше... mssqlserver умеет файловые группы. материализация вьюх "не нужен", всё равно производительность упирается в storage, а не в вычисления нужно грамотно разнести сущности и поля сущностей базы по группам, а группы по разным винтам, и будет вам щасте. никаких просадок по производительности. пруфы - откройте для себя plm-системы, step и прочую подобную в машиностроении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 08:52 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
SERG1257Данные в дополнительных полях вводить как? Проверять введеное, использовать в расчетах, фильтровать, выводить в отчетах... если это не код то что? Вроде БД обсуждалась, а не морды к ней... Хотя даже в морде никакого кода для ввода/вывода/поиска сущностей не понадобится. "использовать в расчетах" новые свойства без кода в общем случае не получится, конечно - ну так это и нельзя назвать "базовой обработкой", "использование в расчетах" нужно далеко не для всех атрибутов, очень часто атрибут нужно просто хранить, выводить, от силы - искать по нему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 10:35 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
я уже много раз писал некоторые типы могут иметь динамическое расширение свойств (поставил галочку и все или убрал) не надо все загонять туда, а только пользовательское расширение надо иметь возможность к этим свойствам обращаться прозрачно, как и другим свойствам надо иметь возможность перегнать эти свойства в статический набор свойств (часто требуется) и обратно (если разрежен или по каким еще причинам) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 10:57 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
можно и покрасившее сделать, но и так пока устравивает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 11:04 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
LSVКачественный ЕАВ можно сделать один раз и использовать всю жизнь.Видел три десятка EAV-реализаций от разных авторов. И ни одной качественной. У всех были проблемы с производительностью, с кривыми данными и невозможностью извлечь из базы то, что надо. Кот Матроскин(включая и проблемы с проиводительностью, и с написанием дополнительных фич в дальнейшем, и т.п.)Это такой тонкий стеб? EAV снижает производительность на порядок, а уж написание дополнительных фич становится огромной головной болью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 13:11 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Bogdanov AndreyКот Матроскин(включая и проблемы с проиводительностью, и с написанием дополнительных фич в дальнейшем, и т.п.)Это такой тонкий стеб? EAV снижает производительность на порядок, а уж написание дополнительных фич становится огромной головной болью. Расскажите про Ваш способ реализовать миллион типов обьектов с разными множествами атрибутов, с лучшей производительность и поддерживаемостью, чем EAV. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 13:38 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Bogdanov AndreyEAV снижает производительность на порядок За счёт чего, извините, оно вдруг - на порядок? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 13:44 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинРасскажите про Ваш способ реализовать миллион типов обьектов с разными множествами атрибутов, с лучшей производительность и поддерживаемостью, чем EAV.Создаем таблицу для каждого типа объекта и наслаждаемся производительностью и поддерживаемостью. Dimitry SibiryakovЗа счёт чего, извините, оно вдруг - на порядок?Конкретные цифры без упоминания конкретных примеров обсуждать здесь нет смысла. Но на практике сталкивался с сокращением времени выполнения операций на три порядка после отказа от EAV в пользу простой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 15:40 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
On 06/22/2012 02:44 PM, Dimitry Sibiryakov wrote: > За счёт чего, извините, оно вдруг - на порядок? Ну как за счёт чего ? Они же думаю, если запрос в 10 раз сложнее, его производительность в 10 раз хуже. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 15:43 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
MasterZiv, прально думают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 15:48 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey, Миллион автогенеренных таблиц и пара-тройка миллионов автогенеренных хранимых процедур, как пример производительного и легко поддерживаемого проекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 16:06 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
MasterZivОни же думаю, если запрос в 10 раз сложнее, его производительность в 10 раз хуже. Осталось только выяснить какой рабинович им насвистел, что запросы к EAV в 10 раз сложнее. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 16:08 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинBogdanov Andrey, Миллион автогенеренных таблиц и пара-тройка миллионов автогенеренных хранимых процедур, как пример производительного и легко поддерживаемого проекта?То есть на ваш взгляд миллион записей в словаре СУБД поддерживать сложнее, чем тот же миллион в вашем велосипеде? Ну а про автогенеренные процедуры я ничего не говорил - это уже ваши собственные фантазии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 16:26 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
vst_guest mssqlserver умеет файловые группы. материализация вьюх "не нужен",В огороде бузина, а в Киеве дядька всё равно производительность упирается в storage, а не в вычисления авторнужно грамотно разнести сущности и поля сущностей базы по группам, Какие группы? У вас в пределе только ТРИ таблицы vst_guest а группы по разным винтам,группы на SAN. Какие там винты меня не трогает. vst_guest и будет вам щасте. никаких просадок по производительности.Для получения строки в N столбцов придется делать N сканов (по индексу) причем никаких гарантий что они лежат в одном блоке, т.о. количество логических чтений будет минимум в N раз больше. Это только для одной таблицы, а если в джойне их M? плюс никаких намеков на оптимизацию плана. Кот Матроскин Миллион автогенеренных таблиц и пара-тройка миллионов автогенеренных хранимых процедур, как пример производительного и легко поддерживаемого проекта? В случае с EAV проект помрет раньше, ибо этот подход СЛОЖНЕЕ. Почему автогенереных, где такое требование? DDL скрипт на базу плюс патч на программу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 16:39 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов, я думаю, целую систему по схеме EAV делать нет смысла, нужно делать только определенные элемены, которые требуют такого подхода, а все остальное как обычно в реляционной БД. Не думаю что така система способна к длительному существованию в условиях, когда требуется постоянная ее доработка и модернизация вселдствии изменения внешней конъюнктуры. Обычно у такой системы есть один максимум несколько идеологов, которые досканально разбирается в этой системе, а все остальные разработчики только сипользуют функционал системы. Реализация бывает настолько сложной, что кроме этих людей внести изменения в ядро не может никто, по причине опасений все поломать, так не знает всех взаимосвязей. И если так получается, что ухоит главный идеолог системы, то система начинает медленно затухать, а потом ее просто заново переделывают, так ка проще снуля сделать чем разобраться в существующем. Даи обучение новых сотрудников оказывается достаточно продолжительным и требует большой квалификации. Я за разумное сочетание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 16:51 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Bogdanov AndreyКот МатроскинBogdanov Andrey, Миллион автогенеренных таблиц и пара-тройка миллионов автогенеренных хранимых процедур, как пример производительного и легко поддерживаемого проекта?То есть на ваш взгляд миллион записей в словаре СУБД поддерживать сложнее, чем тот же миллион в вашем велосипеде? Ну а про автогенеренные процедуры я ничего не говорил - это уже ваши собственные фантазии. миилион таблиц vs миллион записей - да, я думаю что миллион записей поддерживать проще. Например, решаем к 20% обьектов( по некоему критерию) добавить еще атрибут. Мне надо будет вставить 200 000 записей (одним запросом), Вам - делать генерацию скрипта на 200 000 alter table. Как считаете, что потребует больше усилий разработчика и будет быстрее работать? Насчет хранимых процедур - а как Вы рассчитываете оперировать миллионом таблиц? с помощью динамического SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 16:51 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, поддерживаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 16:53 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
SERG1257 Для получения строки в N столбцов придется делать N сканов (по индексу) причем никаких гарантий что они лежат в одном блоке, т.о. количество логических чтений будет минимум в N раз больше. Зачем?? при запросе вида "собрать атрибуты обьекта" используем индекс по ObjectID, все атрибуты берем за 1 скан. Кот Матроскин Миллион автогенеренных таблиц и пара-тройка миллионов автогенеренных хранимых процедур, как пример производительного и легко поддерживаемого проекта? В случае с EAV проект помрет раньше, ибо этот подход СЛОЖНЕЕ. Почему автогенереных, где такое требование? DDL скрипт на базу плюс патч на программу.[/quot] С чего бы ему помереть - с точки зрения EAV-ядра вообще фиолетово, 10 типов обьектов у нас в базе или миллион. Ну запросы работают чуть медленнее, вот и все. Почему автогенеренные - потому что "добавление типа обьекта не требует ни единой строки кода". мы обсуждали реализацию этого ограничения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 17:06 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Создаем таблицу для каждого типа объекта и наслаждаемся производительностью и поддерживаемостью. Ога... Дайтедве..... Еще интересно, как будут выглядеть отчеты по таким табличкам. Феерическая картина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 17:07 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
PG81Сахават Юсифов, я думаю, целую систему по схеме EAV делать нет смысла, нужно делать только определенные элемены, которые требуют такого подхода, а все остальное как обычно в реляционной БД. Не думаю что така система способна к длительному существованию в условиях, когда требуется постоянная ее доработка и модернизация вселдствии изменения внешней конъюнктуры. Обычно у такой системы есть один максимум несколько идеологов, которые досканально разбирается в этой системе, а все остальные разработчики только сипользуют функционал системы. Реализация бывает настолько сложной, что кроме этих людей внести изменения в ядро не может никто, по причине опасений все поломать, так не знает всех взаимосвязей. И если так получается, что ухоит главный идеолог системы, то система начинает медленно затухать, а потом ее просто заново переделывают, так ка проще снуля сделать чем разобраться в существующем. Даи обучение новых сотрудников оказывается достаточно продолжительным и требует большой квалификации. Я за разумное сочетание. А я и не говорил что надо в ЕАВ, ЕАВ только для динамических свойств (и то до поры до времени, пока не перевели в статику) вот лишь некоторые типы имеют галочку в "Динамические свойства", у них имеются и статические свойства и динамические ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 17:20 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
Динаичсекие свойства нужны когда экземпляр типа имеет особое свойств например не все материалы нуждаются в цвете а детали воще вроде бы не нуждаются (веренее могут быть много цветов их гамма и т.д.) если заказывается деталь цвет = "белая" мы находим ТП где а выходе имеется деталь (нет там воще свойство "цвет") смотрим на входы ТП ищем типы которые имеет свойство (дин или статик) "цвет" и выбираем ту которая имеет цвет="белая" при выпуске детали ей присваиваем свойство "цвет" со значением "белая" ну упрощенно все а так суть передан ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 17:33 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
On 06/22/2012 05:08 PM, Dimitry Sibiryakov wrote: > Осталось только выяснить какой рабинович им насвистел, что запросы к EAV в 10 > раз сложнее. Не, они могут быть сложнее. Зато нужно учить таблиц меньше -- уж никак не несколько тысяч :-) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 19:06 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
> я думаю, целую систему по схеме EAV делать нет смысла, нужно делать только > определенные элемены, которые требуют такого подхода, а все остальное как обычно > в реляционной БД. Но в каких-то задачах возможно такого подхода будут требовать все части системы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 19:08 |
|
||
|
наиболее подходящая структура БД для описания характеристик объетов
|
|||
|---|---|---|---|
|
#18+
MasterZiv, потому надо делать динамическую структуризацию (классификацию) тогда можно работать как с "чистыми" реялциоными таблицами, так и с "чистым" ЕАВ, впридачу смешанный режим и базар закрывается на тему еав не еав ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 19:25 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1541631]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 431ms |

| 0 / 0 |
