gpt4 book ai didi

mysql - 保存附件的数据库表

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:47 26 4
gpt4 key购买 nike

我正在为我的站点创建一个数据库,它要求用户在不同页面中上传多个附件。我希望将所有这些附件保存在一个表中,并从需要附件的其他表中引用该表。

现在的问题是我该怎么做?我还没有弄清楚它的逻辑。我的想法是:

attachment_tbl:
attach_id
file_name
description
item1_id -> FK
item2_id -> FK


item1_tbl:
item1_id
attachment1
attachment2


item2_tbl:
item2_id
attachment1
attachment2
attachment3

现在我如何将所有这些附件保存在同一个表中,而不在 attachment_tbl 中有多个 FK,就像我添加另一个 item3_tbl,它有附件,这是否意味着要将另一个 FK 添加到 attachments_tbl?

有没有其他更简单更好的方法来做同样的事情?

最佳答案

添加关系表,连接项目和附件,具有一对多关系:

attachment_tbl:
attach_id
file_name
description

item_tbl:
item_id

item_attachment_tbl:
item_id -> FK
attach_id -> FK

对于每个附件,item_attach 表中都会有一行:

item_id attach_id
-----------------
item1 attach1
item1 attach2
item2 attach3
item3 attach4
item3 attach5
item3 attach6

当你想看到一个项目的附件时,你必须加入表格:

select a.file_name, a.description
from attachment_tbl a
inner join item_attachment_tbl ia on a.attach_id = ia.attach_id
where ia.item_id = 87;

另见 SQL Fiddle

关于mysql - 保存附件的数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13330591/

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