假设我想构建一个支持多个喜欢的实体的喜欢服务:照片、评论、用户或其他任何内容。该列表是开放式的。我对此事没有信心,我的问题是:
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数据库)
最佳答案
您没有给我们提供任何继续下去的信息 - 这个问题可能会陷入辩论和意见。
但我会尝试一下 - 根据您提供的很少的信息......
如果您所要做的就是创建、读取、更新和删除用户喜欢对象的事实,那么是的,关系数据库就是门票。
users
----------
userID
....
Objects
----------
objectID
URL
objectType
....
Likes
----------
UserID
ObjectID
当然,您可能需要存储有关“对象”的更多信息。这就是您可能会遇到麻烦的地方 - 如果您必须存储多态数据类型,那么关系数据库并不优雅。你可以用谷歌搜索一下(我已经看到并回答了几个关于此的问题)。
NoSQL 是否“更好”在这里纯粹取决于您打算支持的用例。您需要提供更多背景信息。
关于mysql - 类似服务数据库的组织方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40000447/