我该如何构建这个数据库?

时间:2011-06-02 18:16:17

标签: php mysql

对于类似主题的另一个问题道歉,但我对此级别的数据库开发缺乏经验。

我有一个用户加入项目的项目,一个从MySQL数据库动态加载内容的页面。我一直在探索外键等来处理将多个用户带到项目中的多对多方面,反之亦然,但是应该在哪里存储加载到每个项目中的所有内容?除此之外,我还有一个聊天窗口和一个上传和下载文件的地方。

1 个答案:

答案 0 :(得分:2)

这可能就是你要找的东西

Project
id
proejectName
startDate
endDate
title
description
[... basically all project specific content]

ProjectParticipant
userId
projectId

User
id
username
email
[... basically all user specific content]

ProjectParticipant是一个多对多表,将用户链接到项目,反之亦然。

修改

如果要表示项目特定文件或项目特定注释,则需要为这些事项创建单独的表,因为一个项目有很多注释,一个项目很可能也有很多文件。因此,您可以创建两个表,如下所示:

ProjectComment
id
projectId (references the id of the project table)
authorId (references the id of the user table)
comment
created_at

ProjectFile
id
projectId (references the id of the project table)
fileLocation 
uploadedBy (references the id of the user table)

希望这有帮助。