0

我正在创建一个博客或类似电子邮件的东西,用户可以在其中附加文件。从技术上讲,他可以添加多少个文件没有限制(暂时忘记这种可能性)。如果用户添加了 10 个附件,我应该如何管理我的表来存储这些附件的 url 路径。我应该在表中创建 20 列来保存附件的 url 路径吗?如果用户想要附加超过 20 个文件怎么办?我正在使用mysql数据库。

4

3 回答 3

1

为附件创建一个表格 - 每个附件 1 行。列应该很明显。

从此表中有一个外键返回到您的“博客”表。

于 2012-09-20T23:59:48.483 回答
0

This is a classic "one to many" relationship. Represent the "many" portion by a separate table, which will be a child endpoint of a foreign key whose parent endpoint is your "main" table.

Something like this:

CREATE TABLE EMAIL (
    EMAIL_ID INT PRIMARY KEY
    -- Other fields...
);

CREATE TABLE ATTACHMENT (
    ATTACHMENT_ID INT PRIMARY KEY,
    EMAIL_ID INT NOT NULL,
    -- ATTACHMENT_URL and other fields... 
    FOREIGN KEY (EMAIL_ID) REFERENCES EMAIL (EMAIL_ID)
);

You can now easily insert several rows into ATTACHMENT that all reference the same row from EMAIL.

The foreign key ensures that you can't insert an attachment for a non-existent e-mail, nor you can delete the e-mail and leave its attachments "hanging in the air".

于 2012-09-21T10:15:07.343 回答
0

您可以将表格设计为>>

表 1--->>> tlbUser

用户 ID(PK) | 用户名 | 密码

表2---->>>tlbUserLinks

LinkId(Pk) | UserId(FK) [来自 tlbUser 的 ID] | 链接网址

这样就不会限制用户添加链接(计数)

您还可以通过此表结构获取哪个用户发布了哪个链接...

于 2012-09-21T03:55:10.553 回答