- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте,
хочу реализовать систему, которая позволит пользователям добавлять страницы сайта в избранное.
каждая страница хранится в БД и имеет свой id
также в БД есть таблица пользователей
вопрос - в каком формате лучше хранить id-шники страниц в поле Pages таблицы Users, чтобы потом было удобней совершать различные операции (удаление, добавление новых id в это поле), и какие функции php следует использовать?
syrpo,
Сделайте отдельную таблицу для избранного, и храните там соответствие id страниц и id пользователя. Т.е. у каждого пользователя может быть неограниченно много страниц в избранном.
Соглашусь с прошлым автором. И потом просто делаете запрос SELECT idpage WHERE iduser='$user' и создаете массив. Просто вы еще функции попросили, как то странно...
Или же через запятую указывать айдишники. Удаление и добавление можно делать в php.
вопрос - в каком формате лучше хранить id-шники страниц в поле Pages таблицы Users, чтобы потом было удобней совершать различные операции (удаление, добавление новых id в это поле), и какие функции php следует использовать?
проще хранить в serialized-виде, используя функции serialize и unserialize, так же, в этом случае, можно хранить ещё и дополнительную информацию, для которой не нужна отдельная сущность в БД
Или же через запятую указывать айдишники. Удаление и добавление можно делать в php.
"по науке" связь многие-ко-многим в реляционных БД правильно делать через отдельную таблицу.. Ну а "можно" - как угодно =) Хоть в файлике.
p.s. В mongodb, например, можно прямо в таблице юзеров хранить.. :)
так же, в этом случае, можно хранить ещё и дополнительную информацию, для которой не нужна отдельная сущность в БД
Дополнительная информация вполне себе укладывается в третье (при необходимости - в четвёртое и тд) поле в таблице связей (id_user, id_post, data)
проще хранить в serialized-виде, используя функции serialize и unserialize, так же, в этом случае, можно хранить ещё и дополнительную информацию, для которой не нужна отдельная сущность в БД
Никогда не храните данные в сериализованном виде без жесткой на то необходимости. Лишняя нагрузка при выборе по параметрам из базы данных при высоконагруженном проекте может со временем сыграть с вами плохую шутку.
Никогда не храните данные в сериализованном виде без жесткой на то необходимости.
Из содержимого моего поста, вполне ясно, что поиск по подобным параметрам производиться не будет, читайте внимательно.
Или же через запятую указывать айдишники. Удаление и добавление можно делать в php.
я вот как раз склонялся к этому - все id хранятся в 1 поле через запятую, а потом SELECT WHERE id IN($user_pages). Но тогда возникает проблема, с тем, как редактировать это поле БД при удалении\добавлении страниц, получается не очень удобно.
Либо все же сделать отдельную таблицу для хранения избранный страниц, как думаете?
Но тогда возникает проблема, с тем, как редактировать это поле БД при удалении\добавлении страниц, получается не очень удобно.
Не вижу здесь какой-то проблемы. У вас строка которую можно разбить в массив, там удаляете или добавляете нужные элементы. Потом склеиваете массив обратно в строку.
Не надо велосипедов.
Делаем 3-ью таблицу
user_id, page_id[, date(дата добавления), и прочее по желанию]
и не морочим себе голову.
Получить все страницы, которые есть у юзера (SELECT page_id FROM this_table WHERE user_id='№юзера').
Самая популярная страница - (SELECT count(*) as cnt, page_id FROM this_table GROUP BY page_id ORDER BY cnt DESC LIMIT 1)