Mysql为一个用户设计了几项数据



我要存储属于用户的笔记,书签,视频和图像:

简化的用户表如下:

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咨询

最新更新