job_offers 中的主键有意义吗?我不认为这是有原因的。
是的 。我同意每张桌子都应该有自己的PK。
每个表都应该有一个主键吗?
我有更多,但情况相同,用户可以是公司或单身人士
job_offers 有两个外键,一个与公司相关,另一个与用户相关。这有问题吗?是否存在另一种方法来完成相同的任务?
系统有两种用户:普通用户(个人)和公司用户。job_offers 是一个保存公司工作机会的表。如果公司用户想要发布工作,则会在 job_offers 表中插入一条记录。那么一旦普通用户得到这个工作offer,job_offers.company_user_id_user 就会被分配给这个普通用户的userid。
但是从您的 ER 图中,Company.users_id_user
是 PK ,不能为 null ,并且此 PK 用作job_offers.company_users_id_user
FK。所以job_offers.company_users_id_user
也不能为 null 。
因此,它无法处理公司用户刚刚发布工作,而普通用户在获得此工作机会之前或最终没有人获得此工作机会的情况。这种情况下, job_offers.company_users_id_user
应该设置为null,这违反了job_offers.company_users_id_user
'not空约束。
我将使用此设计完成相同的任务:
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)