mysql - 类似服务数据库的组织方式

标签 mysql sql database database-design nosql

假设我想构建一个支持多个喜欢的实体的喜欢服务:照片、评论、用户或其他任何内容。该列表是开放式的。我对此事没有信心,我的问题是:

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/

相关文章:

php - 如何使用 utf8 回显像 åäö 这样的特殊字符

mysql - MariaDB Galera 集群服务器以 100% CPU 运行并且负载不断上升

MySQL:返回具有相同ID但按不同字段过滤的所有行

mysql - SQL 返回计数 + 其他列

database - 为 Oracle 中没有根元素的 clob 创建 xml 根元素

c# - ERP会计年度交易表的单数据库VS多数据库?

php - mysql_fetch_assoc 返回 NULL

mysql - 在 Linux 中卸载 Share Lib

MySQL 查询计算查询中 2 层深处的记录数

java - Spring/Thymeleaf : Property or field cannot be found on null, 但仍在渲染