php - 需要有关音乐网站逻辑/显示问题的建议

标签 php mysql logic

我一整天都在绞尽脑汁想弄清楚如何在我的音乐网站上显示二重唱。

基本上我的 MySQL 数据库中有 2 个表。

歌手:singer_id、singer_name。

歌曲:singer_id、song_id、song_name。

我像这样显示歌曲: singer_name:song_name

我知道我可以使用以下内容创建另一个名为 finder 的表:singer_idsong_id 如果有二重唱,我可以将歌曲添加到两位歌手。 但这是最好的解决方案吗?

有没有更好更聪明的解决方案?

最佳答案

这个解决方案很好,但您不应该维护两个单独的机制来存储歌手。即,从歌曲表中删除歌手 ID 字段:

singers: singer_id, singer_name
songs: song_id, song_name
performers: song_id, singer_id

这可以让您轻松找到歌手的所有歌曲:

select song_id from performers where singer_id = $id;

以及一首歌的所有歌手:

select singer_id from performers where song_id = $id;

关于php - 需要有关音乐网站逻辑/显示问题的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7070043/

相关文章:

php - mysql。所有实体的所有属性 1 个表或每个实体 1 个表

php - 测试 SQL 注入(inject)但导致错误?

MySQL - 我如何取消一个字段而不是一个字符串?

logic - 是否存在可以在经典逻辑中证明但在 Agda 中不能证明的命题

c - 难以理解,尤其是在输入方面

python - 如何将三元素字典列表(第一个元素 : term, 第二个元素 : position, 第三个:值)转换为双元素字典列表

php - CentOS 6.7 php 5.6 Chef

php - 关于 PHP 中具有静态函数和命名空间的类的问题

php - 如何发布 $_POST 值

php - 在 PHP 中为用户创建一个 CSV 文件