Покинул форум
Сообщений всего: 140
Дата рег-ции: Март 2010
Помог: 0 раз(а)
Всем привет!
Голова кипит от кучи мыслей которые не получается "разложить по полочкам".
Суть задачи. Необходимо реализовать записть объявлений в базу данных. Соответственно категорий и подкатегорий может быть множество.
Есть ли смысл сделать, скажем, для каждого раздела свою таблицу, для каждой категории тоже свою таблицу, для подкатегории тоже свою ?
Были мысли сделать общую таблицу и каждому значению сделать свое поле в таблице, но думаю это не вариант, т.к. для разных категорий объявлений разное кол-во значений будет.
Еще есть мысли, сделать пару полей для того что бы можно было выбирать данные и поле доп. информации в котором данные будут в сериализованном виде храниться.
Как лучше сделать запись в базу объявлений, что бы как можно проще потом вывести это все из базы в зависимости от категорий и подкатегорий?
Саныч
Отправлено: 03 Июля, 2011 - 22:03:06
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
делаете всего две таблицы: объявления и категории. В объвах делаете все необходимые поля и id категории... В категориях соответственно id и parent_id... В итоге имеем неограниченную вложенность категорий и рассортированные объявы...
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
Andruxa
Отправлено: 03 Июля, 2011 - 22:19:35
Частый гость
Покинул форум
Сообщений всего: 140
Дата рег-ции: Март 2010
В том то и вопрос, что если так делать то у меня будет куча полей, т.е возьмем для примера 2 категории (Недвижимость и Автомобили)
Для "Недвижимости" поля будут иметь свою специфику (этаж, из чего стены, параметры и т.п.), соответственно поля для объявлений "Автомобили" будут тоже иметь свою специфику (марка модели, год выпуска, цвет, пробег и прочее). Если все это делать в одной таблице это будет караул , может всетаки есть смысл разделить таблицы по катагориям объявлений?
White
Отправлено: 03 Июля, 2011 - 22:37:20
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
как вариант конечно serialize() всех свойств, хотя мне лично не нравится, лучше связку через id сделать
----- if(time()>1356048000) die();
Саныч
Отправлено: 04 Июля, 2011 - 00:19:23
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
Andruxa, я вас сразу не понял... так-то да, лучше не делать в одной таблице, т.к. в итоге получится "каша"... Как вариант - предложение White, сделать поле "параметры" и хранить в нем все параметры продукта... Но я б скорей всего такое не выбрал.
Одно дело, если нужно просто хранить и показывать. В этом случае это наилучший вариант.
Другое же дело, когда нужно организовать сортировки всякие и т.д... Но хотя и здесь немного поизвращавшись можно сделать и с serialize.
Мне вот что интересно. Обычно, когда подобное делают, то уже знают специфику товаров, т.е. будут то вещи или недвижимость, или техника, или что-то еще... А у вас это что будет?.. Иил это из серии "торгуем всем и ничем"?
Вобщем я еще немножко подумаю, как лучше это реализовать, но скорей всего самое оптимальное в вашем случае будет использовать предложение White
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
Andruxa
Отправлено: 04 Июля, 2011 - 07:50:36
Частый гость
Покинул форум
Сообщений всего: 140
Дата рег-ции: Март 2010
Помог: 0 раз(а)
Цитата:
как вариант конечно serialize() всех свойств, хотя мне лично не нравится, лучше связку через id сделать
А чем он Вам не нравится ? Работает медленнее или какие то другие причины ?
Цитата:
Мне вот что интересно. Обычно, когда подобное делают, то уже знают специфику товаров, т.е. будут то вещи или недвижимость, или техника, или что-то еще... А у вас это что будет?.. Иил это из серии "торгуем всем и ничем"?
Сначала хотел именно сделать объявления под одну специфику, но потом передумал и хочу сделать объявления по разным темам . Специфика будет разнообразная, что то похожее на "торгуем всем"
morosit
Отправлено: 04 Июля, 2011 - 08:04:00
Посетитель
Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010 Откуда: Казахстан
Помог: 4 раз(а)
Andruxa как вариант
Все объявления хранятся в одной таблице, у каждого объявления максимум, допустим 5 параметров, под именами парам1, парам2, и т.д. Т.е. без специфики в названий полей.
Andruxa
Отправлено: 04 Июля, 2011 - 08:36:14
Частый гость
Покинул форум
Сообщений всего: 140
Дата рег-ции: Март 2010
Помог: 0 раз(а)
Цитата:
Все объявления хранятся в одной таблице, у каждого объявления максимум, допустим 5 параметров, под именами парам1, парам2, и т.д. Т.е. без специфики в названий полей.
Думаю может получится нужно будет попробовать, спасибо за идею!
Саныч
Отправлено: 04 Июля, 2011 - 08:53:21
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
Andruxa, я вчера перед сном еще немного подумал над вашей задачей. Вобщем я б сделал так:
1. Первая таблица categories
Поля: id, parent, parameters и далее все необходимые типа название и чето там еще...
2. Вторая таблица products
Поля: id, category, еще всякие типа названий, дат...
3. Третья таблица parameters
Поля: id и опять таки еще типа названия и т.д.
4. Вы (или кто-то другой) как админ, при добавлении новой категории выбираете необходимые параметры (параметры хранятся в таблице parameters). Выбор реализовывается на checkbox-ах... Выбранные значения заносятся в serialize() виде в ячейку parameters таблицы categories
5. Админ может добавлять новые параметры в таблицу parameters (к тому же их будет не так уж и много, к примеру "цвет" будет использоваться и в авто, и в мебели, и в вещах). При добавлении нового параметра добавляется новое поле в таблицу products с префиксом, к примеру, parametr_ и id параметра в таблиц parameters
6. Ну и при добавлении нового товара, сначала выбираем необходимые поля для данной группы товаров и заполняем только их...
В итоге имеем неограниченную вложенность категорий, неограниченное количество параметров для каждой категории... Единственный "минус" это, возможно, слишком большая таблица продуктов... Но этот так... Какая разница, какая там таблица, главное чтоб все работало
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
Andruxa
Отправлено: 04 Июля, 2011 - 21:41:56
Частый гость
Покинул форум
Сообщений всего: 140
Дата рег-ции: Март 2010
Помог: 0 раз(а)
Саныч Спасибо за идею, тоже можно попытаться реализовать.
Перечитал раз 20 предложенное Вами, но все равно не совсем въехал.
Интересует этот пункт:
Цитата:
4. Вы (или кто-то другой) как админ, при добавлении новой категории выбираете необходимые параметры (параметры хранятся в таблице parameters). Выбор реализовывается на checkbox-ах... Выбранные значения заносятся в serialize() виде в ячейку parameters таблицы categories
Т.е в таблицу параметры, я внес обобщенно все параметры которых будут касаться моих объявления, так?
А не получится, что при добавлении категории объявления и в момент выбора паметров, у меня появится ОЧЕНЬ много checkbox' сов, которые я устану вибирать. Или я что то не допонял в этом моменте ?
Саныч
Отправлено: 04 Июля, 2011 - 22:40:03
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
Andruxa пишет:
появится ОЧЕНЬ много checkbox' сов, которые я устану вибирать
вот про это я немного написал в пункте 5 (в скобках)... Предположим у нас есть мебель и авто... Такие параметры как цвет, высота, ширина, длина будут у обоих групп товаров... И таких вариантов много, т.е. это только кажется, что параметров будет много... Да и вобще понятие "много"? В моем понятии это 200 - 300, а в вашем?
К тому же этот выбор придется сделать всего один раз при добавлении категорий, ну и возможно еще пару раз при редактировании... Вобщем, можно и пострадать немного
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
DlTA
Отправлено: 04 Июля, 2011 - 22:59:01
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
как вариант
таблиц:
"Типы объектов" - автомобили, одежда, ....
"тип свойства" - цвет, число стен, максимальная скорость, размер, ....
"сводная таблица, тип объекта/свойство" - id типа объекта | id типа свойств
"значения свойств" - зеленый, 1985, хлопок, ....
"объекты" - id объекта| id типа объекта | ..........
"сводная таблица, объект/тип свойства/значение" id объекта | id типа свойства | id свойства
надеюсь схема взаимоотношений понятна,
+ таблицы категорий, и свойства для объектов о принадлежности к категории
а вообще для начала стоит определиться с перечнем обязательных свойств объектов и категоирий, я как то считал у меня вышло 11 (видимость товара, цена, описание, краткое описание, ....) (Добавление)
кстати серелизация светит тормозами когда станет вопрос поиска
да и при обычном отображении товара, для отображения придется делать уйму запросов, а mySQL+php не любят когда много запросов, лучше 1 но большой))
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.