gpt4 book ai didi

mysql - SQL 效率 更多表或更多行

转载 作者:行者123 更新时间:2023-11-29 06:29:10 25 4
gpt4 key购买 nike

假设我有一个照片管理数据库,目前有 100 个注册用户,每个用户有 10000 张照片绑定(bind)到他们的 user_id。每个用户只能访问自己的照片。

为每个用户分别拥有 10,000 张照片的 100 个表(以 user_id 作为表名)是否更有效由所有 1,000,000 张照片组成的单个表 在数据库性能方面没有任何差异?

在这两种情况下,数量都会继续增加(即更多用户或更多照片)

编辑: 我目前正在使用 MySQL 构建数据库,最初考虑存储图像链接,这些图像很可能会存储在单个文件夹中。我想我对如何处理这个问题有了更好的想法!感谢您的回复!

最佳答案

对于多对一关系,您可能只需要两个表。一个包含用户 ID 的表(可能还有其他用户信息),一个包含照片和用户 ID 的表(用户表的外键)。

是这样的:用户表

UserID  Name  DateJoined  etc.
1 Dan 2015-01-01 ...
2 Jim 2015-02-01 ...

照片表(您可以将实际照片存储在表中,如果您打算在 SQL Server 上使用 FILESTREAM;我认为我不推荐在 MySQL 上使用它)

PhotoID  UserID PhotoPath        PhotoTitle
1 1 '/img/asdf.jpg' 'My favorite'
2 2 '/img/asdf2.jpg' 'First!'
3 1 '/img/asdf3.gif' 'Animated favorite'

您的 ImagePath 必须是唯一生成的(使用 GUID/UUID 作为文件名,将所有用户的照片存储在特定目录中,或者类似的东西)。

如果您真的只想存储照片并将它们与用户相关联,您可能需要考虑使用 NoSQL/文档数据库。

关于mysql - SQL 效率 更多表或更多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28978202/

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