MySQL将两个索引合并为一个索引

MySQL将两个索引合并为一个索引,mysql,indexing,Mysql,Indexing,我想知道是否有办法将两个索引合并到第三个索引中,以生成某种序列号。。。例如: 如果我想创建音乐数据库 我会从桌子艺术家开始 -艺术家姓名 -艺术家id(主键) - 然后将相册与 -相册名称 -相册编号(P.k.) - 然后用桌子唱歌 -歌名 -宋美德 假设艺术家是X,艺术家id为-12345 然后是相册id为-678的相册Y 我希望song_id为12345.678.xxx(圆点仅用于想法的可视化,艺术家id和专辑id的长度将保持不变) 我的问题是。有可能吗? 因为我有一种感觉,这将在数据库中执

我想知道是否有办法将两个索引合并到第三个索引中,以生成某种序列号。。。例如: 如果我想创建音乐数据库 我会从桌子艺术家开始 -艺术家姓名 -艺术家id(主键) -

然后将相册与 -相册名称 -相册编号(P.k.) -

然后用桌子唱歌 -歌名 -宋美德

假设艺术家是X,艺术家id为-12345 然后是相册id为-678的相册Y 我希望song_id为12345.678.xxx(圆点仅用于想法的可视化,艺术家id和专辑id的长度将保持不变)

我的问题是。有可能吗? 因为我有一种感觉,这将在数据库中执行更好的搜索。 不仅在我的song_id中我有艺术家和专辑的完整信息(我不需要使用外键),它还可以加快对来自同一张专辑或同一艺术家的其他专辑的歌曲的查询。所有信息都集中在一个索引中,只需要某种提取


或者这只是我对MySQL的最起码的了解?:)

将艺人id和唱片集id作为单独的列保留在歌曲表中,并包括适当的外键关系和索引。这将为您提供数据完整性和查询性能的最佳组合。

好吧,我将试着从一开始,尽管我不100%理解您打算如何使用它。您可以将字段合并为索引或主键(这实际上是一个专门的索引),但规范化数据结构的思想是保持数据库的大小较小,并有助于维护,而不是减少对外键的依赖。所以,当Prince更改他的名字时,你还是希望能够更新艺人表中的一条记录,而不是艺人专辑歌曲表中的1000条记录。你真的是指MySQL意义上的“索引”吗?似乎您还没有创建任何表来实际定义艺术家、歌曲和专辑之间的关系。这些是使用关系数据库所必需的。你真的需要了解如何为你的数据库正确地设计数据模型。事实上,我不完全确定我要用它,但老实说。。如果普林斯改变他的名字,已经上市的专辑将永远不会改变名字:):)我担心我被它弄疯了……)