Сл. 1
Имеется таблица 1: id, name, price, .. вобщем сюда записываются объекты и сразу их характеристики.
Сл. 2
Имеется таблица 1: id - только ИД объекта
Имеется таблица 2: object_id, name, price, ... все характеристики. Связка - object_id = id из таблицы 1.
Сл. 3
Имеется таблица 1: id - только ИД объекта
Имеется таблица 2: object_id, type, value ... характеристики по одному. Связка - object_id = id из таблицы 1. type это тип характеристики (name, price, ... )
Сл. 4
Имеется таблица 1: id - только ИД объекта
Имеется таблица 2: type, value ... характеристики по одному. type это тип характеристики (name, price, ... )
Имеется таблица 3: object_id, character_id - таблица связок объект - характеристика
Обработка данных - вытаскивание объектов из БД, обновление, удаление и т.д.
с одной стороны - если всё в одной таблице - то проще запрос будет, но с другой - из-за большого объёма таблицы не будет тормозить система при обращении к ней???
Спустя 4 минуты, 4 секунды (15.09.2006 - 14:50) vasa_c написал(а):
не будет.
Таблица с одним только id это вообще что-то выше моего разумения.
Обычно наиболее оптимально хранить в одной таблице основные параметры объектов, которые будут заполнены у всех.
Дополнительные параметры (которые есть не у всех, либо их список не ограничен), хранить отдельно в таблице, как в Сл.3.
Таблица с одним только id это вообще что-то выше моего разумения.
Обычно наиболее оптимально хранить в одной таблице основные параметры объектов, которые будут заполнены у всех.
Дополнительные параметры (которые есть не у всех, либо их список не ограничен), хранить отдельно в таблице, как в Сл.3.
Спустя 18 минут, 35 секунд (15.09.2006 - 15:09) md5 написал(а):
насчёт таблице с одним id.. есть реализации на сайтах с бльшой нагрузкой.. сам видел
есть таблица с категориями, таблица с объектами, таблица с характеристиками, и две таблицы со связками категория-объект и объект-характеристика =)
есть таблица с категориями, таблица с объектами, таблица с характеристиками, и две таблицы со связками категория-объект и объект-характеристика =)
Спустя 16 минут, 15 секунд (15.09.2006 - 15:25) vasa_c написал(а):
md5, расскажи свою ситуацию лучше. В каждом случае разный подход будет оптимальным.
Спустя 2 часа, 15 минут, 33 секунды (15.09.2006 - 17:40) md5 написал(а):
Есть каталог, структура хранится в одной таблицы. категории связываются по полю parent_id.
Есть таблица с объектами, в которой я сделал связку с категориями - поле category_id.
в этой же таблице сделал полями все характеристики.
Будет очень много запросов на вытаскивание большого количества объектов из какой-либо категории.
так вот я и спрашиваю, быстрее будет работать вариант, который я реализовал или вариант с хранением характеристик объекта в отдельной таблице?
Есть таблица с объектами, в которой я сделал связку с категориями - поле category_id.
в этой же таблице сделал полями все характеристики.
Будет очень много запросов на вытаскивание большого количества объектов из какой-либо категории.
так вот я и спрашиваю, быстрее будет работать вариант, который я реализовал или вариант с хранением характеристик объекта в отдельной таблице?
Спустя 46 минут, 5 секунд (15.09.2006 - 18:26) vasa_c написал(а):
какие характеристики у объекта и все ли эти характеристики будут иметь значения для всех объектов во всех категориях?
Спустя 2 дня, 14 часов, 36 минут, 20 секунд (18.09.2006 - 09:03) md5 написал(а):
практически все!
это значит, что у одной категории объектов будет 95% характеристик и у другой 95%, но немного другие...
это значит, что у одной категории объектов будет 95% характеристик и у другой 95%, но немного другие...
Спустя 2 часа, 9 минут, 57 секунд (18.09.2006 - 11:13) vasa_c написал(а):
Я обычно делаю так:
Основная таблица содержит id объекта и небольшой набор параметров, которые железно будут у него. По всякому там будет ссылка на категорию. Так же может быть название, цена и т.п.
Если дополнительных параметров не слишком много и они будут заполнены у всех объектов, то их тоже можно хранить в этой таблицы и со связанными не заморачиваться.
Если же этих параметров 100 штук, то их все же желательно вынести в отдельную таблицу со структурой:
id-объекта
параметр
значение параметра
Так же отдельно выносить стоит параметры, которые присутствуют не у всех объектов или не часто являются заполненными.
Еще одно преимущество вынесенных параметров в том, что их набор будет гораздо легче менять.
Насчет быстродействия, я думаю, что если объекты не исчисляются миллионами, то любая структура из первого поста при грамотном построении индексов+запросов большого влияния на скорость оказывать не будет.
Основная таблица содержит id объекта и небольшой набор параметров, которые железно будут у него. По всякому там будет ссылка на категорию. Так же может быть название, цена и т.п.
Если дополнительных параметров не слишком много и они будут заполнены у всех объектов, то их тоже можно хранить в этой таблицы и со связанными не заморачиваться.
Если же этих параметров 100 штук, то их все же желательно вынести в отдельную таблицу со структурой:
id-объекта
параметр
значение параметра
Так же отдельно выносить стоит параметры, которые присутствуют не у всех объектов или не часто являются заполненными.
Еще одно преимущество вынесенных параметров в том, что их набор будет гораздо легче менять.
Насчет быстродействия, я думаю, что если объекты не исчисляются миллионами, то любая структура из первого поста при грамотном построении индексов+запросов большого влияния на скорость оказывать не будет.