像服务数据库组织

时间:2016-10-12 13:52:18

标签: mysql sql database database-design nosql

说我想建立一个支持多个可爱实体的Like服务:照片,评论,用户或其他任何东西。该清单是开放式的。我对此事并不自信,我的问题是:

1)关系数据库引擎如何满足我的需求?我会有一个常见的类似实体(like_id,user_id)和多个数据透视实体:like_photo(id,like_id,photo_id),like_video(id,like_id,video_id),其中数据透视表中的like_id字段是引用该实体的外键。像表一样常见,允许识别喜欢的用户以及可能的其他信息,例如时间戳等。

2)我是否宁愿为此目的使用某种nosql数据库(根本没有nosql经验)?

2.1)是否可以拥有可靠的跨数据库引用(RMDBS - nosql数据库)

1 个答案:

答案 0 :(得分:0)

你给我们很少的继续 - 这个问题可能会进入争论和观点。

但是我会根据你提供的非常少的信息给它一个... ...

如果你要做的就是创建,阅读,更新和删除用户喜欢对象的事实,那么是的,关系数据库就是故障单。

users
----------
userID
....


Objects
----------
objectID
URL
objectType
....


Likes
----------
UserID
ObjectID

当然,您可能需要存储有关“对象”的更多信息。这就是你可能遇到麻烦的地方 - 如果你必须存储多态数据类型,关系数据库并不优雅。你可以Google(我已经看过并在SO上回答了几个问题)。

NoSQL是否“更好”,这完全取决于您打算支持的用例。您需要提供更多背景信息。