- Автор темы
- #1
Нужен дельный совет от тех, кто хорошо разбирается в базах и коде (вопрос касается и того и другого). Совет, практически - консультация, нужно хорошо подумать. Но для тех, кто профи, я думаю, труда не составит
Буду очень благодарен за помощь.
Есть категории, есть фирмы (пользователи), есть товары, которые добавляют эти фирмы.
Вся задача в том, что товары должны быть только те, что создал админ, а фирмы только ставили галочки (выбирали), есть у них такой товар или нет, и указывают цену и комментарий, если товар есть.
В каталоге выводится список фирм, у кого есть определенный товар.
Вопросы:
1. в том, как хранить данные (в каком виде) , т.е. список товаров у каждой фирмы.
2. как работать с данными, в зависимости от типов данных в базе (некий алгоритм)
3. Что нужно предусмотреть? Например, что если товар изменит название, категорию, будет удален, появится новый товар - что будет с данными у фирмы? От этого и будет зависеть хранение данных, как понимаю.
4. Нужен ли кэш в такой задумке? Кол-во фирм 2000 примерно, товаров около 100.
Функции админа:
удалять товар, добавлять, редактировать название, описание, перемещать в категорию, скрывать.
Функции пользователя:
выбирать товар, удалять (т.е. фирма больше не имеет товара), редактировать цену и комментарий.
Функции посетителя сайта:
поиск фирм, у которой есть конкретный товар, просмотреть цену и комментарий у фирмы
вывод всех товаров в каждой категории на анкете фирмы.
Идеи (мои, но сырые, т.к. в php не профи
1. сделать админом в каждой категории товары, по типу, как и сами категории. Когда фирма заполняет товары, выводить список всех товаров у каждой категории с чекбоксами. Пользователь отмечает и сохраняет. И данные сохраняются, как массив из id товаров в поле таблицы у фирмы. При вызове карточки фирмы, брать данный массив и делать запрос на вывод списка товаров по заданному id (where id =12,13,15,16). Все товары должны разделятся на категории. Т.е. выводится категория, делается запрос на все id данной категории (у админа которые), далее, делается запрос на все id у фирмы. Если id у фирмы и которые добавил админ, совпадают, то выводится. Это чтобы разбить на категории.
При редактировании фирмы делать такой же запрос. При совпадении id делать чекбоксами отмеченными. И пересохранять новый список.
Вопрос в поиске... можно в php сделать вывод фирм, где в многомерном массиве найден id товара? Что с нагрузкой будет?
2. Добавлять каждый товар, как обычный товар, один товар - одна запись в таблице. Пользователю открывается уже готовая карточка с товарами (как шаблон). Он отмечает и отправляет. В таблицу сохраняется сразу много товаров (например, 10 отмеченных из 15 и так несколько категорий сразу) + комментарий и цена. Так в таблицу летят, примерно, 75 товаров от одной фирмы.
При редактировании, выводить список товаров от фирмы. На карточке фирмы выводить список всех товаров по категориям. Это все просто.
А если админ удаляет товар, меняет его категорию, название, он должен быть удален у всех фирм (все товары с id этого товара). При перемещении сменить id категории.
При переназывании запускать скрипт на изменение названий всех товаров.
Что лучше, как правильно, мои ошибки?
Буду очень благодарен за помощь.
Есть категории, есть фирмы (пользователи), есть товары, которые добавляют эти фирмы.
Вся задача в том, что товары должны быть только те, что создал админ, а фирмы только ставили галочки (выбирали), есть у них такой товар или нет, и указывают цену и комментарий, если товар есть.
В каталоге выводится список фирм, у кого есть определенный товар.
Вопросы:
1. в том, как хранить данные (в каком виде) , т.е. список товаров у каждой фирмы.
2. как работать с данными, в зависимости от типов данных в базе (некий алгоритм)
3. Что нужно предусмотреть? Например, что если товар изменит название, категорию, будет удален, появится новый товар - что будет с данными у фирмы? От этого и будет зависеть хранение данных, как понимаю.
4. Нужен ли кэш в такой задумке? Кол-во фирм 2000 примерно, товаров около 100.
Функции админа:
удалять товар, добавлять, редактировать название, описание, перемещать в категорию, скрывать.
Функции пользователя:
выбирать товар, удалять (т.е. фирма больше не имеет товара), редактировать цену и комментарий.
Функции посетителя сайта:
поиск фирм, у которой есть конкретный товар, просмотреть цену и комментарий у фирмы
вывод всех товаров в каждой категории на анкете фирмы.
Идеи (мои, но сырые, т.к. в php не профи
1. сделать админом в каждой категории товары, по типу, как и сами категории. Когда фирма заполняет товары, выводить список всех товаров у каждой категории с чекбоксами. Пользователь отмечает и сохраняет. И данные сохраняются, как массив из id товаров в поле таблицы у фирмы. При вызове карточки фирмы, брать данный массив и делать запрос на вывод списка товаров по заданному id (where id =12,13,15,16). Все товары должны разделятся на категории. Т.е. выводится категория, делается запрос на все id данной категории (у админа которые), далее, делается запрос на все id у фирмы. Если id у фирмы и которые добавил админ, совпадают, то выводится. Это чтобы разбить на категории.
При редактировании фирмы делать такой же запрос. При совпадении id делать чекбоксами отмеченными. И пересохранять новый список.
Вопрос в поиске... можно в php сделать вывод фирм, где в многомерном массиве найден id товара? Что с нагрузкой будет?
2. Добавлять каждый товар, как обычный товар, один товар - одна запись в таблице. Пользователю открывается уже готовая карточка с товарами (как шаблон). Он отмечает и отправляет. В таблицу сохраняется сразу много товаров (например, 10 отмеченных из 15 и так несколько категорий сразу) + комментарий и цена. Так в таблицу летят, примерно, 75 товаров от одной фирмы.
При редактировании, выводить список товаров от фирмы. На карточке фирмы выводить список всех товаров по категориям. Это все просто.
А если админ удаляет товар, меняет его категорию, название, он должен быть удален у всех фирм (все товары с id этого товара). При перемещении сменить id категории.
При переназывании запускать скрипт на изменение названий всех товаров.
Что лучше, как правильно, мои ошибки?