Имеет ли первичный ключ смысл в job_offers?Я не думаю, что для этого есть причина.
Да.Я согласен, что у каждого стола должен быть свой ПК. Должна ли каждая таблица иметь первичный ключ?
У меня есть больше, но в случае совпадения пользователи могут быть компаниями или одинокими людьми
job_offers имеет двавнешние ключи, один относится к компании, а другой к пользователям.Есть ли проблема с этим?Существует ли другой способ выполнить ту же задачу?
В системе есть два типа пользователей: обычный пользователь (человек) и пользователь компании.Job_offers - это таблица, в которой сохраняются предложения о работе от компании.Если пользователь компании хочет опубликовать работу, запись будет вставлена в таблицу job_offers.Затем, как только обычный пользователь получит это предложение о работе, для идентификатора пользователя этого обычного пользователя будет назначен job_offers.company_user_id_user.
Но из вашей диаграммы ER Company.users_id_user
- это PK, который не может бытьnull, и этот PK используется в job_offers.company_users_id_user
как FK.Таким образом, job_offers.company_users_id_user
также не может быть нулевым.
В результате он не может справиться с ситуацией, когда пользователь компании просто публикует работу и до того, как обычный пользователь получит это предложение о работе, или никто не получит это предложение о работе в конце концов.В этом случае для job_offers.company_users_id_user
должно быть установлено значение null, что нарушает ограничение job_offers.company_users_id_user
not null.
Я выполню ту же задачу, используя этот дизайн:
Users
=================
id_user (PK)
email
activation
password
Company
=================
id_company (PK)
activities
foundation
user_id (FK to Users)
description
job_offer
=================
id_job_offer (PK)
id_company (FK to Company)
description_offer
tags
user_offer
=================
id (PK)
user_id (FK to Users)
job_offer_id (FK to job_offer)