Как выбрать подход к созданию архитектуры?

Как наилучшим образом организовать базу данных для сайта объявлений, то имея в виду добавление компаний, чтобы избежать дублирования и обеспечить эффективную структуру? Я рассматриваю вариант с тремя таблицами: пользователи с общими данными (пароль, почта), extendsUser с данными для пользователей и extendsCompany с данными для компаний. Какие альтернативные подходы можно рассмотреть или как можно улучшить предложенную структуру базы данных для этой модели?
  • 20 декабря 2023 г. 22:07
Ответы на вопрос 2
Выбор подхода к созданию архитектуры зависит от требований и характеристик проекта. Однако в случае сайта объявлений с добавлением компаний предложенная вами структура базы данных может быть достаточно эффективной.

Если вы хотите избежать дублирования, то использование отдельной таблицы для компаний (например, extendCompany) является правильным подходом. Это позволит хранить данные, специфичные только для компаний, отдельно от данных для пользователей.

Однако вместо отдельной таблицы для пользователей (extendsUser) вы можете просто добавить дополнительные столбцы в таблицу пользователей, чтобы хранить данные, специфичные для них. Это может сэкономить некоторое количество времени и ресурсов при выполнении запросов соединения таблиц.

Вот пример структуры таблиц для модели сайта объявлений с добавлением компаний:

1. Таблица "users":
   - id (первичный ключ)
   - имя
   - фамилия
   - пароль
   - почта
   - роль (например, "пользователь" или "администратор")

2. Таблица "companies":
   - id (первичный ключ)
   - название компании
   - адрес
   - телефон
   - пользователь_id (внешний ключ, ссылается на id в таблице "users")

Таким образом, каждая компания будет связана с соответствующим пользователем через столбец "пользователь_id".

Эта структура позволит вам эффективно хранить данные компаний и пользователей, а также обеспечит возможность связи между ними. Однако помните, что в конечном итоге выбор структуры базы данных будет зависеть от конкретной ситуации и требований вашего проекта.
Храните в разных столбцах, ведь даже у объявления компании есть автор пользователь
Похожие вопросы