mySQL我需要多个索引来将多个表与外键连接到一个主表吗?

时间:2012-09-11 20:16:37

标签: mysql relational-database

我正在构建一个记录集合数据库。我有一个主要的发布表,包括标题,艺术家,格式,国家,日期,标签等 - 每个都是一个单独的表,外键连接回发行版。我的问题是,它们各自的表中的所有外键是否连接到Release中的一个主键(id),还是它们各自连接到Release中相应的Index整数键?说到索引 - 是否有必要在上面的所有搜索中创建一个单独的索引?

由于

1 个答案:

答案 0 :(得分:1)

根据您提供的信息,您将拥有以下表格结构

<强>唱片集

ID,Title,ArtistID,FormatID,CountryID,Date,LabelID

<强>艺术家 ID(Releases表中ArtistID的外键),名称等

<强>格式 ID(Releases表中FormatID的外键),名称等

等等。

  

是否有必要在上述所有方面创建一个单独的索引   哪个会被搜查?

取决于您计划如何搜索表格

编辑:

  

好的,所以每个表中的每个外键都连接到它自己的id   发布表 - 不是主要ID,对吗?

完全。 ArtistID将连接到Artist表,其中ID是主键,但在Releases表中它是外键。其余字段的想法相同,除了日期。

  

至于搜索,例如,搜索艺术家(表格将有   应该连接到的名字,姓氏或组名   艺术家的发布

然后在ArtistFirstName和ArtistLastName字段上创建索引 - 这些是Artists表中的字段,这就是您的搜索要搜索的内容。如果您希望显示艺术家的版本,那么您必须加入ArtistID上的艺术家和发行表(搜索后会得到)。

如果您阅读有关关系数据库设计和规范化的更多信息,将会有所帮助。