MySQL中的电影歌曲下载链接应该如何整理?
How should I organize song download links of movies in MySQL?
我想问的是一般情况下我应该如何组织数据库中的数据。
假设我有 5 部电影,每部电影有 5 首歌曲,并且正在下载 link。
我也应该
- 为每部电影制作 table 并添加歌曲名称,然后在 table 中下载 link 如:
+-------------------------------+
| Movie Name |
+-------------------------------+
| SongTitle varchar() |
| DownloadLink varchar() |
+-------------------------------+
或
- 制作一个 table 包含电影名称、歌曲名称和它的下载 link 如:
+-------------------------------------+
| Song Database |
+-------------------------------------+
| MovieName varchar() |
| SongName varchar() |
| DownloadLink varchar() |
+-------------------------------------+
哪种方式可以更好地管理数据并缩短加载时间?
如何决定何时创建单独的 table 以及何时对所有数据使用相同的 table?
电影和歌曲可以独立存在:
movies (movie_id PK, movie_name)
songs (song_id PK, song_name, download_link)
如何关联它们取决于您的需要。如果电影可以有多首歌曲,但每首歌曲只能属于一部电影:
movie_songs (song_id PK/FK, movie_id FK)
但是如果歌曲可以在多部电影中使用,那么:
movie_songs (song_id PK/FK, movie_id PK/FK)
我想问的是一般情况下我应该如何组织数据库中的数据。
假设我有 5 部电影,每部电影有 5 首歌曲,并且正在下载 link。
我也应该 - 为每部电影制作 table 并添加歌曲名称,然后在 table 中下载 link 如:
+-------------------------------+
| Movie Name |
+-------------------------------+
| SongTitle varchar() |
| DownloadLink varchar() |
+-------------------------------+
或 - 制作一个 table 包含电影名称、歌曲名称和它的下载 link 如:
+-------------------------------------+
| Song Database |
+-------------------------------------+
| MovieName varchar() |
| SongName varchar() |
| DownloadLink varchar() |
+-------------------------------------+
哪种方式可以更好地管理数据并缩短加载时间?
如何决定何时创建单独的 table 以及何时对所有数据使用相同的 table?
电影和歌曲可以独立存在:
movies (movie_id PK, movie_name)
songs (song_id PK, song_name, download_link)
如何关联它们取决于您的需要。如果电影可以有多首歌曲,但每首歌曲只能属于一部电影:
movie_songs (song_id PK/FK, movie_id FK)
但是如果歌曲可以在多部电影中使用,那么:
movie_songs (song_id PK/FK, movie_id PK/FK)