Задать вопрос
@nera4llife
Сторонник гелиоцентр

Какую архитектуру выбрать для сайта объявлений?

Делаю сайт по объявлениям местечковый, изначально рассчитывал только на обычных пользователей, теперь понадобилось добавить компании. Так как поля отличаются, добавил для них отдельную таблицу. Продолжая, понял, что при публикации объявления (а автор объявления в бд это его айди) будет дубляж айдишников. Создавать две одинаковые таблицы для юзеров и компаний - считаю неправильно. Или нет?

Подумав, пришел к идее в три таблицы. Юзер с основными данными пароль-почта, extendsUser с данными как юзер и extendsCompany с данными компании.
  • Вопрос задан
  • 123 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
@jazzus
Таблица users содержит только поля пользователей.
Таблица companies содержит только поля компаний и + поле user_id для связи с пользователями.
Юзеров связываем с компаниями c помощью связи hasMany (имеет много). Т.к. пользователь может иметь много компаний. Если непонятно гугли hasMany.
Объявление публикует юзер, делаешь поле в форме - "От компании" и выбор компаний пользователя из списка.
Таким образом у тебя пользователь может публиковать и от себя, как физлица, и от любой своей компании.
Ну а в самом объявлении проверяешь, заполнено ли поле "От компании" и если заполнено то показываешь данные компании.
Ответ написан
Комментировать
@pantsarny
Храните в разных столбцах, ведь даже у объявления компании есть автор пользователь
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AndryG
юзеры (они же физлица)
кампании (много всяких, но для каждой одна запись, чтобы не было "Рога и копыта", "Рога и Копыта". и т.д.)
кампании-юзеры (разные юзеры в разное время могут работать в разных компаниях)

В таблице объявлений два поля: user_id, company_id
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы