|
|
|
проектирование. различные продукты с разными свойствами и их количеством. xml-field?
|
|||
|---|---|---|---|
|
#18+
хочу услышать замечания и советы по проектированию бд автозапчастей. так как нельзя сделать для каждого типа автозапчасти свою таблицу (потому что категорий довольно много, да и организовать поиск по всем таблицам с учётом модели авто довольно проблематично), то их(записи) придётся пихать в одну. по простому она будет выглядеть так: id, типЗапчасти, название, хмл-список свойств Код: plaintext 1. 2. Дело в том, что в последствии придётся фильтровать по какому-то параметру хмл. Например, отобрать только зимние шины. Насколько работоспособна такая схема? Не помрёт ли сервер, если записей будет около 15.000? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2009, 18:52 |
|
||
|
проектирование. различные продукты с разными свойствами и их количеством. xml-field?
|
|||
|---|---|---|---|
|
#18+
palladin600, Поиск по словам: EAV, Тенцер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2009, 18:58 |
|
||
|
проектирование. различные продукты с разными свойствами и их количеством. xml-field?
|
|||
|---|---|---|---|
|
#18+
т.е. не использовать лучше хмл? делать на каждую запчасть собственную таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2009, 20:05 |
|
||
|
проектирование. различные продукты с разными свойствами и их количеством. xml-field?
|
|||
|---|---|---|---|
|
#18+
palladin600делать на каждую запчасть собственную таблицу?Ну что вы, нет, конечно. 15000 таблиц - это явно перебор. :) Вкратце, у вас должно быть 2 таблицы. В первой (мастер) хранятся общие данные для всех видов запчастей, например, наименование, код производителя и т.д. Во второй таблице хранятся атрибуты запчастей. Но учтите, что модель по Тенцеру может быть удобной, но она не эффективна по скорости выборки/вставки. В этом отношении XML будет побыстрее. Лично у меня аллергия на XML, так что подождите более беспристрастного советчика. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2009, 20:30 |
|
||
|
проектирование. различные продукты с разными свойствами и их количеством. xml-field?
|
|||
|---|---|---|---|
|
#18+
хелп. Тенцер мне кажется тяжёлый дядька и давит на IO. А ХаМеЛеон прожорливый до процессора... Кто-нибудь делал выборку по ХМЛ? Как ощущения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2009, 11:57 |
|
||
|
проектирование. различные продукты с разными свойствами и их количеством. xml-field?
|
|||
|---|---|---|---|
|
#18+
palladin600хелп. Тенцер мне кажется тяжёлый дядька и давит на IO.Без паники. :) Я Вам посоветовал посмотреть в сторону EAV именно потому, что вы сказали про максимальное количество записей. Это 15000 и то поди с запасом брали? ;) Допустим на деталь количество атрибутов, ну скажем, 20. Это вторая таблица, 300000 записей. При этом таблицы "узкие", столбцов мало. Разве это много? Нормальные индексы "навешать" и большого ущерба производительности трудно ожидать. Судя по Вашей статистике будете использовать MSSQL. Вот выдержака из BOL: BOLThe primary XML index is a shredded and persisted representation of the XML BLOBs in the xml data type column. For each XML binary large object (BLOB) in the column, the index creates several rows of data . The number of rows in the index is approximately equal to the number of nodes in the XML binary large object. То есть, если почитать дальше (вот ссылка на статью), сервер сделает все тоже самое что EAV. Только хранить информации будет больше, потому что: BOL (там же)Each row stores the following node information: Tag name such as an element or attribute name. Node value. Node type such as an element node, attribute node, or text node. Document order information, represented by an internal node identifier. Path from each node to the root of the XML tree. This column is searched for path expressions in the query. Primary key of the base table. The primary key of the base table is duplicated in the primary XML index for back join with the base table, and the maximum number of columns in primary key of the based table is limited to 15. Выводы делайте сами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2009, 12:33 |
|
||
|
проектирование. различные продукты с разными свойствами и их количеством. xml-field?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. Пример, имхо, не удачный: масло - не запчасть, а расходный материал - можно выкинуть в отдельную таблицу "расходники", аккумуляторы и покрышки - не запчасти а комплектующие - тоже отдельная таблица... Вобщем, если подумать, можно построить нормальную структуру, в которую влезут все атрибуты. Для розничной торговли 15000 - совсем не большой ассортимент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2009, 13:05 |
|
||
|
проектирование. различные продукты с разными свойствами и их количеством. xml-field?
|
|||
|---|---|---|---|
|
#18+
вижу 2 подхода: 1. Шаблон: Динамические свойства Таблица Сущности, в данном случае "Товары" Таблица Свойства, имеет поле: ТипЗначения(Перечислимое, Элементарное) Таблица СпискиЗначенийСвойств, имеет поля: СвойствоРодитель, ссылка на Свойства(только для свойств перечислимого типа) Значение Таблица ЗначенияСвойств, поля: Сущность, ссылка на Сущности Свойство, ссылка на свойство ЭлементарноеЗначение, только для элементарных ПеречислимоеЗначение, для перечислимых ссылка на СпискиЗначенийСвойств можно еще добавить таблицы: ТипыСущностей и СвойстваТиповСущностей, чтоб фиксировать набор сущностей определенного типа недостаток: слабая типизация, приведение типов и все храним в одном месте. В общем Универсализация как плюсом так и минусом 2. Объектноподобная модель Таблица Товары с общими полями и полем типа товара Множество таблиц (думаю около 30 примерно) с специфичными полями, ссылка на родительскую таблицу. Причем иерархия родительской может быть более длинной. недостаток: изменение набора типов сущностей требует реструктуризации базы данных, зато нет проблем первого варианта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2009, 13:43 |
|
||
|
проектирование. различные продукты с разными свойствами и их количеством. xml-field?
|
|||
|---|---|---|---|
|
#18+
Naf, Думаю, второй вариант наиболее адекватный. Пробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 23:10 |
|
||
|
проектирование. различные продукты с разными свойствами и их количеством. xml-field?
|
|||
|---|---|---|---|
|
#18+
palladin600, Не забудьте подумать, как Вы такое количество таблиц джойнить будете, по второму-то варианту. Потому что на каждый вид товара не станете писать отдельный запрос, правильно? Прийдется для того узнать, что у <Масла> <ShellTurbo> <вязкость = 10w40> надо будет "слепить" все 30 таблиц. Клево? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 23:27 |
|
||
|
проектирование. различные продукты с разными свойствами и их количеством. xml-field?
|
|||
|---|---|---|---|
|
#18+
В догонку. По аналогии с компьютерами и прочей оргтехникой думаю, что у характеристик товара должна быть еще и последовательность их отображения. Например Core2Duo 2.53ГГц / 2ГБ RAM/300 ГБ HDD ... Как Вы собираетесь контролировать порядок параметров, раскидав их по разным таблицам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 23:40 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35763584&tid=1543464]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 508ms |

| 0 / 0 |
