说我想建立一个支持多个可爱实体的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数据库)
答案 0 :(得分:0)
你给我们很少的继续 - 这个问题可能会进入争论和观点。
但是我会根据你提供的非常少的信息给它一个... ...
如果你要做的就是创建,阅读,更新和删除用户喜欢对象的事实,那么是的,关系数据库就是故障单。
users
----------
userID
....
Objects
----------
objectID
URL
objectType
....
Likes
----------
UserID
ObjectID
当然,您可能需要存储有关“对象”的更多信息。这就是你可能遇到麻烦的地方 - 如果你必须存储多态数据类型,关系数据库并不优雅。你可以Google(我已经看过并在SO上回答了几个问题)。
NoSQL是否“更好”,这完全取决于您打算支持的用例。您需要提供更多背景信息。