我正在使用歌曲数据库系统在多对多关系数据库上使用 mysql 学习 php。下面显示了三个表的组织方式:
Songs Link Tags
======= ===== =======
Sid Sid Tid
Songname Tid Tagname
现在我在想如果有标签同义词怎么办?因为我正在计算每首歌曲的匹配百分比,并结合输入的标签。我不想为一首歌曲输入 20 个标签,所以我涵盖了所有可能性,但因此破坏了匹配百分比,因为输入了 4 个标签,这导致 4/20 匹配,即 20%,而它可能必须是 4/8 (50%)。
有没有一种聪明的方法来为同义词创建一个表,确保标签是“分组的”,以便首先用这个表检查输入的标签,然后这个/这些“头标签”与链接表匹配导致歌曲名和输入标签的匹配百分比/“头部标签”的总数×100%?
最重要的是,您将如何创建一个查询,当输入一首新歌曲时,新标签会被输入到它们所属的组中,而现有的标签会被跳过。同时将这个头标签也链接到新歌?
我不确定这个想法是否现实,但我想知道其他系统如何做到这一点,以确保您获得准确的匹配,同时也考虑同义词。