0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 37
1

Структура БД для доски объявлений

16.01.2013, 12:36. Показов 14329. Ответов 42
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Как организовать бд для доски объявлений например как avito? Где объявление привязывается к региону и к категории.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.01.2013, 12:36
Ответы с готовыми решениями:

Этапы создания доски объявлений
Здравствуйте, хочу сам написать доску объявлений, но столкнулся с такой проблемой с чего начать её...

Посоветуйте к кому обратиться за разработкой крупной доски объявлений
Такой вопрос, адресован опытным веб-программистам и разработчикам. Необходимо разработать новый...

Как переделать программу-клиент для доски объявлений?
Добрый день, у меня есть скрипт доски объявлений, который я немного изменила и встроила на свой...

Нужен готовый php-сайт(шаблон), для доски объявлений
Я помню, что где-то было много таких, но никак не могу найти в инете. Может есть у кого-то ссылки...

42
6 / 6 / 1
Регистрация: 25.07.2011
Сообщений: 68
16.01.2013, 21:59 2
Прежде всего отталкивайся не от БД, а просчитай архитектуру в голове, или на бумаге.
Грубо говоря:
Таблица ads:
id | region | owner_id | timestamp | category | text
Таблица regions:
id | region_name_en | region_name_ru
Таблица users:
id | name | surname | address | etc
Таблица categories:
id | category_name_en | category_name_ru
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 37
16.01.2013, 22:50  [ТС] 3
Просто не могу понять как связать таблицы например для категорий.
Есть категория Транспорт->под категория Новые авто->Audi->модель(тип кузова, год, пробег и т.д). Т.е надо создавать отдельные таблицы, если да как как их объединять?
Так же и для регионов Россия->Моск. обл.->...
0
6 / 6 / 1
Регистрация: 25.07.2011
Сообщений: 68
16.01.2013, 23:00 4
Лучше всего будет по одной таблице под каждый уровень категорий. Или ввести дополнительное поле, например "type", тогда получится такая штука:
1| Транспорт | category
2| Новые авто | subcategory
3| Недвижимость | category
4| Квартиры | subcategory
5| Дома | subcategory

Таблица ads:
1|5|1|16012013|2|Продаю ВАЗ 2106
где:
1 - id обьявления.
5 - id региона, которому соответствует например Москва
1 - id usera, например Иван Петров.
16012013 - дата
2 - id категории (и пофиг что это субкатегория, выбор категорий - другое окно, главное его id)

Выборка будет делаться легко:
select * from ads where region='5' and category='2';
Выведет все из таблицы ads, из региона Москвы, и категории "Новые авто", которая является субкатегорией "Авто". Как то так.
1
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
16.01.2013, 23:27 5
Вот только что за поле subcategory?
Луче уж тогда назвать parent_id и хранить в нём id родительской категории для вложенных категорий, и нулл или 0 для корневых.
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 37
17.01.2013, 00:00  [ТС] 6
Вот прикинул как должна будет выглядеть бд, если что то не правильно прошу поправить.
таблица category:
id |name_en|name_ru|parent_id|

таблица in_category:
id |name_en|name_ru|

таблица items:
id | name | email | phone | title | cena | text | id_regions | category_id | user_id | password | datepud |
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.01.2013, 00:01 7
Цитата Сообщение от Popigrup Посмотреть сообщение
таблица in_category:
Это что?
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 37
17.01.2013, 00:18  [ТС] 8
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Это что?
Под категории
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.01.2013, 00:38 9
Подкатегории в той же таблице что и категории, для этого и нужно поле parent_id

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
parent_id и хранить в нём id родительской категории для вложенных категорий, и нулл или 0 для корневых.
1
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 37
17.01.2013, 13:56  [ТС] 10
Значит так?
id name_enname_ruparent_id
1 transportтранспорт0
2 novoe-avtoновое авто1
3 avto-s-probegomавто с пробегом1
4 bytovaya_elektronikaбытовая электроника0
5 noutbukiноутбуки2
6 telefonyтелефоны2
и т.д.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.01.2013, 14:08 11
Зачем нетбуки и телефоны Вы вложили в новые авто?
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 37
17.01.2013, 14:29  [ТС] 12
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Зачем нетбуки и телефоны Вы вложили в новые авто?
Я думал у всех категорий id_parent должен быть 0. А у под категорий там (1,1,1),(2,2,2),(3,3,3)... и все ссылаются на родительский "0", иначе как связать категории с под..
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.01.2013, 14:35 13
Цитата Сообщение от Popigrup Посмотреть сообщение
Я думал у всех категорий id_parent должен быть 0
Верно.
Но у нетбуков какой у вас парент ид? = 2
а у какой категории ИД = 2?
у новые авто
А значит что нетбуки вложены в новые авто
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 37
17.01.2013, 15:15  [ТС] 14
Ааа... вроде догнал
5 |noutbuki|ноутбуки|4|
6 |telefony|телефоны|4|
Вот правильней?
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.01.2013, 15:19 15
Да.
1
6 / 6 / 1
Регистрация: 25.07.2011
Сообщений: 68
17.01.2013, 15:44 16
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Вот только что за поле subcategory?
Луче уж тогда назвать parent_id и хранить в нём id родительской категории для вложенных категорий, и нулл или 0 для корневых.
Да, ты таки прав, НО если человек задает такие вопросы, врядли он осилит концепцию родительских обьектов.

Да и для понимания, как должно работать, у него должно быть как можно больше видно на ладони ))
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.01.2013, 15:50 17
Цитата Сообщение от ntfs1984 Посмотреть сообщение
врядли он осилит концепцию родительских обьектов.
Уж проще чем этой схемы я думаю нет.
я же не предлагаю ему nested set юзать, что в случае с категориями было бы лучше.
Ну и вроде бы он понял суть
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 37
17.01.2013, 15:53  [ТС] 18
А для регионов такая же схема будет?
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.01.2013, 15:56 19
Да как хотите.
Если так же делать, то при выборе по всему региону, вам придётся выбирать вложенные нас пункты.
И уже для них выбирать записи. Это будет немного сложнее запрос, чем разбить регионы и нас пункты на две разные таблицы, и связь сделать отдельно для региона и отдельно для нас пункта.
Решать Вам
0
6 / 6 / 1
Регистрация: 25.07.2011
Сообщений: 68
17.01.2013, 16:01 20
Да, Popigrup, вынос категорий и подкатегорий в две таблицы - проще, запрос короче, выглядит нагляднее, лучше редактируется.
Но масштабируемость трудоемкая, например, если подкатегорий будет не один уровень, а десять
Я в своих проектах делал через parent_id.
0
17.01.2013, 16:01
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2013, 16:01
Помогаю со студенческими работами здесь

Хочу найти скрипт доски объявлений на пхп такой :
1. С двумя уровнями регистрации: 1....

Структура бд доски объявлений
Прошу помощи в построении структуры бд для доски объявлений. Проблема в том, что есть к примеру 2...

Движок для доски объявлений
Посоветуйте, на чем лучше сделать полноценную доску объявлений? Необходимы: удобные фильтры по...

CMS для доски объявлений
всем привет! нужен CMS для создание доски объявление на подобе avito.ru подскажите какой выбрать?!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Интеграция Arduino и ChatGPT: Практическое руководство
InfoMaster 16.01.2025
В современную эпоху технологических инноваций интеграция искусственного интеллекта с микроконтроллерами открывает принципиально новые возможности для создания умных устройств и автоматизированных. . .
Как создать робота, управляемого ChatGPT
InfoMaster 16.01.2025
Концепция проекта В современную эпоху искусственный интеллект и робототехника становятся все более доступными для энтузиастов и разработчиков. Создание роботизированной руки, управляемой ChatGPT,. . .
Как создать ChatGPT бота в Telegram на Python
InfoMaster 16.01.2025
В современном мире технологии искусственного интеллекта становятся все более доступными для разработчиков, открывая новые возможности для создания умных и интерактивных приложений. Одним из самых. . .
Машинное обучение с помощью Python
InfoMaster 16.01.2025
Машинное обучение стало неотъемлемой частью современных технологий, позволяя компьютерам учиться на основе данных и принимать решения без явного программирования. В сочетании с языком. . .
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru