gpt4 book ai didi

php - 复杂的mysql表设计选择

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

我正在设计一个相当复杂的数据库,并且在某个方面难以做出选择。成员(member)可以上传视频、照片和故事,有些是免费的,有些是付费的。照片需要能够以名称分组。

我已经决定在成员(member)数据库中添加代表“免费照片集数”、“付费照片集数”的列;视频和故事也是如此。

我纠结的决定是存储集合名称、每个集合中的数字和集合类型。

请记住,如果一组照片中有 6 张,我将需要显示相关的 6。视频等也是如此。

文件将以编码标题保存 - 免费照片、用户 ID 2、集合 3、图片 4 将保存为 FP020304.jpg(仅作为示例),这样我就知道要调用哪些。

选择 1:每个成员一个额外的表格,其中包含以下列(代表):

示例条目是:

SET-ID | SetType    | SetName  | NumberInSet    
1 | freephotos | holiday | 10
2 | paidphotos | birthday | 6

选择 2:相同,但只有一个表用于所有成员,并且只在列中添加了“MemberID”

选择3:每种类型一张 table ,每个成员(member)一张 table ,例如,一张 table 用于免费照片,另一张 table 用于付费等。

选项 4:与 3 相同,但添加了成员​​ ID 列。 (只有6张 table )

到目前为止的想法:选择 3 似乎最容易做查询,但我不确定我是否喜欢为每个新成员添加 6 个表的想法。选择 4 似乎是最合乎逻辑的,因为永远只有 6 个表,但提取相关信息会比较棘手。选择 1 和 2 导致每个成员的新表较少,但获得结果似乎更棘手

我并不反对更棘手的解决方案,但我无法决定什么是最适合这种情况的 - 事实上,我确信还有其他我尚未想到的方法。

建议将不胜感激。

(nb - 第一篇文章 - 我希望这篇文章清晰可见)

最佳答案

选项 3 太糟糕了,现在删除它。我还建议不要将“集合中的数字”作为值存储在数据库中。每次插入新照片时,都必须更新相应的 numberinset 值。它的解决方案不是在数据库中存储聚合值,而是在脚本中使用聚合来返回此计数。

我会使用“成员”或用户表,一个将照片/视频集与您的用户相关联的“集合”表(此处包括免费/付费列)。从那里创建一个照片/文件表,将照片与“设置”表相关联。每组照片/视频的数量可以通过以下方式确定

 select set_id , count(1) from mediatable group by set_id

这将为您提供设定值中的数字,您不必担心像那样更新“计数”列。

关于php - 复杂的mysql表设计选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19937492/

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