Вобщем делаю что-то типа шопа. Там есть товары. У каждого товара есть какие-то свойства. Свойства мне изначально не известны, их количество, название и тип данных соответственно. Вопрос - как правильно сделать таблицу баз данных (мускул) для этих самых свойств? Я думал делать вот так: 1) создадим таблицу "свойства", в которой будет ид, название_свойства пример: 1 | цвет 2 | обьем 3 | год выпуска 2) создадим таблицу "таблица_свойств", в которой будет ид, ид_товара, ид_из_таблицы_свойства, значение пример: 1 | 32 | 2 | 16 метров 2 | 32 | 3 | 1992 3 | 34 | 1 | красный правильно ли это с точки зрения производительности?
А может просто в таблице свойств первой сразу иметь поле для ИД товара и его характеристики. например : ИД| Название----|Id товара | характеристика 1 -| цвет-----------|3------------| Красный 2 -| обьем---------|2-------------| 3 литра 3 -| год выпуска--|3-------------| 2009 С одной стороны удобно выбирать, 1 запрос и получил массив свойств, а тебе нужно делать 2 запроса (или один но с вложенными). С другой стороны нужно будет для каждого товара за ного прописывать название свойства. Хотя в твоем случае потом создастся такой список свойств, что ориентироваться в них будет сложновато, и быстрее будет напечатать. Ну и в моем случае БД будет меньше на 1 таблицу. А в админке можно тоже выбирать из этой таблицы список названий свойств и выводить их в порядке популярности для удобства.
а сейчас подумай. что лучше - присвоить свойству "техническое состояние за 2004 год" циферку "1" и везде (в 100 товарах например писать 1,1,1... либо писать 100 раз "техническое состояние за 2004 год"?
Одинакого. Это все автоматизируется. Выводишь список товаров, выбираешь 100 нужных и всем присваиваешь значение. А теперь подумай как часто тебе придется это делать? 1раз в день? А твои Х запросов лишних будут вызываться раз 100-1000 в час. П.с да и ctrl+c ctrl+v никто не отменял, 1 раз написал и копируешь везде. Ну и еще один п.с.с. ты писал про производительность,а не удобство использования. Вот сам смотри : Так вот ИМХО не правильно.
Я просто это сказал к тому, что размер базы ЗНАЧИТЕЛЬНО увеличится => увеличится нагрузка на рамку мускул-сервера => все будет шикарненько лагать.
Фигня. Я вот поддерживаю сайт с объявлениями, у меня свыше 12000 объявлений с текстом и не лагает ведь, выборка происходит быстро. 1 длинный запрос всегда быстрее 2х. Это я к тому,что база лагать не будет если что и будет занимать время так это доставка информации от базы к клиенту. НО один фиг будет доставлен тот-же объем информации только для это сделано в 2 раза больше запросов. Тоесть ты сначала заставляешь базу пройтись по всем товарам и выбрать нужный, а потом еще пройтись по списку свойств и выбрать те котоые принадлежат товару,а потом еще и выбрать значения этих свойств. И это будет работать быстрее чем просто выбрать из базы свойств? Я в общем понял что ты хотел сказать, ты просто в конце поставил знак вопроса,а надо было восклицательный..т.к ты уже создал себе мнение и хочешь чтоб его просто поддержали,а не сказали как лучше. Дам тебе что ты просишь: Да ты гениален,все будет работать как часы и твой магазин не загнется.