哪个数据库表Schema更有效,为什么?
"Users (UserID, UserName, CompamyId)" "Companies (CompamyId, CompanyName)"
要么
"Users (UserID, UserName)" "Companies (CompamyId, CompanyName)" "UserCompanies (UserID, CompamyId)"
鉴于用户和公司具有一对一的关系.
这是一个开放式问题,取决于您的业务规则.您拥有的第一个选项只允许一个公司映射到一个用户.你定义了一对一的关系.
第二个模式定义了多对多关系,允许多个用户映射到多个公司.
它们解决了不同的问题,并根据您要解决的问题确定应该使用的模式.
严格地说,从"事务"的角度来看,第一个模式会更快,因为您只需要为用户对象提交一行以与公司关联,并检索用户工作的公司只需要一个连接,但是,如果您的业务需求发生变化,并且要求您让多个公司分配给用户,则第二个解决方案将更好地扩展.
可以肯定的是,考虑到这种约束,前一个更有效.要获取相同的信息,您的查询中的联接数会减少.