我要存储属于用户的笔记,书签,视频和图像:
简化的用户表如下:
user: id, email, password_hash
注释包含标题和内容,而书签包含标题和url
note: id, title, content, (user_id)
bookmark: id, title, uri
video: id, title, uri
images: id, title, uri
我可以为所有这些创建一个表,但是如果我想添加其他东西,例如任务,我必须为此创建另一个表。你建议我怎么设计桌子?
mysql是最好的数据库,还是像mongodb
这样的东西更好?
正如JamWaffles建议的那样,您可以有一个表用于内容,一个表用于内容类型,即:
content: id, title, uri, content_type_id, user_id
content_type: id, name
编辑:内容表可以像这样:
-------------------------------------------------------------
| id | title | uri | content_type_id | user_id |
-------------------------------------------------------------
| 1 | 'My note' | '/note?id=1' | 4 | 56 |
-------------------------------------------------------------
和内容类型表:
---------------
| id | name |
---------------
| 4 | 'note' |
---------------
我还没有实际使用MongoDB,但我想你可以使用以下结构:
{
"id": "...",
"email": "...",
"password_hash": "...",
"notes": {
"id": "...",
"title": "...",
"uri": "..."
}
"bookmarks": {
...
}
}
与其他NoSQL数据库一样,MongoDB有其优点也有缺点。您必须评估您的具体需求,以确定哪一套更好。就我个人而言,我不明白为什么你不能使用mysql作为你提议的数据库结构。
我希望这有帮助,
每Flitig
Netlight咨询