gpt4 book ai didi

php - 在数据库中创建3个表(检索数据php/mysql)

转载 作者:行者123 更新时间:2023-11-29 08:20:01 26 4
gpt4 key购买 nike

您好,我遇到了一个小问题,如何有效地为此案例创建数据库:

我。数据库方案。

CREATE TABLE IF NOT EXISTS `songs` (
`url` varchar(12) NOT NULL,
`author` varchar(250) NOT NULL,
`name` varchar(255) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=293 ;


CREATE TABLE IF NOT EXISTS `account` (
`id` int(11) NOT NULL,
`login` varchar(15) NOT NULL,
`password` varchar(20) NOT NULL,
`social_fb` varchar(20) NOT NULL,
`social_yt` varchar(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `playlists` (
`id` int(11) NOT NULL,
`accountid` int(11) NOT NULL,
`songs` varchar(10000) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

二.意识形态。

每个用户(帐户)可以有多个播放列表。播放列表将包含以 id 存储在“歌曲”中的歌曲。

三.结论

1)我非常确定这个数据库方案没有解决此类问题。我不知道它如何将songs.id 放入播放列表中并将其分配给用户。您能帮我解释一下它应该是什么样子吗?

2) 从用户中检索单个播放列表的可能查询 a) 获取分配给用户帐户的播放列表的 ID。

感谢您的宝贵时间。

最佳答案

您必须创建第四个名为 playlist_has_song 的表或类似的表,用于映射哪些歌曲位于哪个播放列表中。然后您可以删除播放列表表中的歌曲列。

所以你有:

table: song
-----------
id (PK)
url
author
name

table: account
--------------
id (PK)
login
password
social_fb
social_yt

table: playlist
---------------
id (PK)
accountid (FK to account.id)

table: playlist_has_song
------------------------
playlistid (FK to playlist.id)
songid (FK to song.id)

请注意,表的名称始终是单数而不是复数。

查询

获取分配给用户帐户的播放列表的 ID:

SELECT id FROM playlist WHERE userid = ?

关于php - 在数据库中创建3个表(检索数据php/mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19659581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com