当前位置: 首页 > 面试题库 >

SQL-是否应该使用联结表?

慕震博
2023-03-14
问题内容

我正在创建一个新的SQL Server 2008数据库。我有两个相关的两个表。

第一个表如下所示:

 BRANDS // table name
 BrandID // pk
 BrandName // varchar

第二张表如下所示:

 MODELS // table name
 ModelID // pk
 ModelDescription // varchar

每个品牌将至少具有一个型号,并且每个型号将仅属于一个品牌。

问题是,我应该像这样创建一个联结表吗?

 BRANDS_MODELS // table name
 RecordID // pk
 BrandID
 ModelID

还是我应该修改MODELS表以包括这样的BrandID

 MODELS // table name
 BrandID // 
 ModelID // pk
 ModelDescription // varchar

谢谢!


问题答案:

如果某个模型仅属于一个品牌,则可以在模型表上将FK放到该品牌上(您的第二种方法)。第一种方法是使用联结表,用于多对多关系。



 类似资料:
  • AccessibilityService在系统的内存管理方面与普通服务有何不同? 我想问的是:系统可以为了节省内存而关闭AccessibilityService吗?如果可以,当您进入AccessibilityService时,您会看到它打开还是关闭?用户是否必须再次手动打开? 使用startForeground是否有助于使AccessibilityService保持活动状态? 在一个类似的问题中,

  • 问题内容: 在Java的JPA中(通过EmbeddedId或IdClass注释)似乎仅对复合数据库键提供第二类支持。当我阅读复合键时,无论使用哪种语言,人们都会碰到它们,因为这是一件坏事。但是我不明白为什么。如今,组合键是否仍然可以使用?如果没有,为什么不呢? 我发现一个同意我的人:http : //weblogs.sqlteam.com/jeffs/archive/2007/08/23/comp

  • 在处理一个包含二进制数据的旧数据库的导出时,我偶然发现了我们的一个实用方法中的一个异常: java.lang.AbstractMethoderror:net.sourceforge.jtds.jdbc.blobimpl.free() 在检查了我们的代码库之后,我发现实用方法直到现在都没有使用过,基本上是这样的: BinaryHolder只是保存二进制数据的包装器(在您询问之前,代码执行得很好,直到

  • 我正在将我的PHP代码从mysql更新到mysqli,但我似乎找不到这个问题的答案:mysqli更新查询是否返回结果? 使用mysql,我可以 即使该查询不返回任何行,也将为true。 现在,在mysqli代码中,我有如下内容(为了清晰起见,删除了错误处理): 结果是错误的。 对于记录来说,查询是有效的(忽略我可能在将其转录到stackoverflow中时犯的任何错别字),字段1在数据库中按预期正

  • 问题内容: 我是一名C ++程序员,偶尔使用MySQL处理数据库,但是我的SQL知识非常有限。但是,我当然愿意改变这一点。 目前,我正尝试仅通过SQL查询对数据库中的数据进行分析(!)。但是我将放弃,而是将数据导入C 并使用C 代码进行分析。 我已经与同事讨论了这一点,他们也促使我使用C ++,他说SQL并不是用于复杂的分析,而是主要用于导入(从现有表中)和导出(到新表中)数据,还有更多内容。例如