You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

点赞仅对互为好友的人可见的数据库结构

以下是一个示例的数据库表结构,用于存储“点赞仅对互为好友的人可见”的数据:

用户表(users):

  • id:用户ID(主键)
  • name:用户名

好友关系表(friendships):

  • id:关系ID(主键)
  • user_id_1:用户1的ID(外键,关联用户表的id字段)
  • user_id_2:用户2的ID(外键,关联用户表的id字段)

点赞表(likes):

  • id:点赞ID(主键)
  • user_id:点赞的用户ID(外键,关联用户表的id字段)
  • post_id:点赞的帖子ID(外键,关联帖子表的id字段)

帖子表(posts):

  • id:帖子ID(主键)
  • content:帖子内容

下面是一个包含代码示例的解决方法,使用MySQL数据库和Python编程语言:

-- 创建用户表
CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50)
);

-- 创建好友关系表
CREATE TABLE friendships (
  id INT PRIMARY KEY AUTO_INCREMENT,
  user_id_1 INT,
  user_id_2 INT,
  FOREIGN KEY (user_id_1) REFERENCES users(id),
  FOREIGN KEY (user_id_2) REFERENCES users(id)
);

-- 创建点赞表
CREATE TABLE likes (
  id INT PRIMARY KEY AUTO_INCREMENT,
  user_id INT,
  post_id INT,
  FOREIGN KEY (user_id) REFERENCES users(id),
  FOREIGN KEY (post_id) REFERENCES posts(id)
);

-- 创建帖子表
CREATE TABLE posts (
  id INT PRIMARY KEY AUTO_INCREMENT,
  content TEXT
);
import mysql.connector

# 建立数据库连接
conn = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="your_database"
)

# 创建游标对象
cursor = conn.cursor()

# 插入用户数据
cursor.execute("INSERT INTO users (name) VALUES ('User 1')")
cursor.execute("INSERT INTO users (name) VALUES ('User 2')")
cursor.execute("INSERT INTO users (name) VALUES ('User 3')")

# 插入好友关系数据
cursor.execute("INSERT INTO friendships (user_id_1, user_id_2) VALUES (1, 2)")
cursor.execute("INSERT INTO friendships (user_id_1, user_id_2) VALUES (2, 1)")
cursor.execute("INSERT INTO friendships (user_id_1, user_id_2) VALUES (1, 3)")

# 插入帖子数据
cursor.execute("INSERT INTO posts (content) VALUES ('Post 1')")
cursor.execute("INSERT INTO posts (content) VALUES ('Post 2')")

# 插入点赞数据
cursor.execute("INSERT INTO likes (user_id, post_id) VALUES (1, 1)")
cursor.execute("INSERT INTO likes (user_id, post_id) VALUES (2, 1)")

# 提交事务
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()

以上示例代码创建了一个包含用户表、好友关系表、点赞表和帖子表的数据库结构,并插入了一些示例数据。你可以根据自己的需求进行修改和扩展。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

万字长文带你漫游数据结构世界|社区征文

[](https://markdownpicture.oss-cn-qingdao.aliyuncs.com/blog/数据结构.png)# 数据结构是什么?> 程序 = 数据结构 + 算法是的,上面这句话是非常经典的,程序由数据结构以及算法组成,当然数据结构和算法也是相... 二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结构进行高效率的排序与检索操作。二叉查找树...

字节跳动自研万亿级图数据库 & 图计算实践

本文将对字节跳动自研的分布式图数据库和图计算专用引擎做深度解析和分享,展示新技术是如何解决业务问题,影响几亿互联网用户的产品体验。来源:字节跳动技术团队图状结构数据广泛存在 字节跳动的所有产品的大部分业务数据,几乎都可以归入到以下三种: * 用户信息、用户和用户的关系(关注、好友等);* 内容(视频、文章、广告等);* 用户和内容的联系(点赞、评论、转发、点击广告等)。...

一文了解数据库事务和隔离级别 | 社区征文

## 1. 什么是事务事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(多个DML语句,select语句不包含事务),要不全部成功,要不全部不成功。如 A 给 B 要划钱,... 则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,已经提交的修改数据也不会丢失。## 3. 事务并发我们知道 MySQL 是一个客户端/服务器架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每...

字节跳动数据库的过去、现状与未来

面对如此庞大的应用规模和数据规模,如何在数据库领域进行数据管理和数据治理,成了摆在数据库团队面前的巨大难题。而在字节跳动内部,数据库建设主要面临三大挑战:**业务种类繁多**。以抖音为例,为了管理用户之间复杂的社交关系,同时根据用户点赞、关注等行为进行智能推荐,我们需要用图进行管理。再如抖音电商商城设计订单、库存等数据,这些信息适合用关系型结构化的结构表达。除此之外抖音还存在大量结构化和非结构化数据,如用...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

点赞仅对互为好友的人可见的数据库结构-优选内容

万字长文带你漫游数据结构世界|社区征文
[](https://markdownpicture.oss-cn-qingdao.aliyuncs.com/blog/数据结构.png)# 数据结构是什么?> 程序 = 数据结构 + 算法是的,上面这句话是非常经典的,程序由数据结构以及算法组成,当然数据结构和算法也是相... 二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结构进行高效率的排序与检索操作。二叉查找树...
字节跳动自研万亿级图数据库 & 图计算实践
本文将对字节跳动自研的分布式图数据库和图计算专用引擎做深度解析和分享,展示新技术是如何解决业务问题,影响几亿互联网用户的产品体验。来源:字节跳动技术团队图状结构数据广泛存在 字节跳动的所有产品的大部分业务数据,几乎都可以归入到以下三种: * 用户信息、用户和用户的关系(关注、好友等);* 内容(视频、文章、广告等);* 用户和内容的联系(点赞、评论、转发、点击广告等)。...
一文了解数据库事务和隔离级别 | 社区征文
## 1. 什么是事务事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(多个DML语句,select语句不包含事务),要不全部成功,要不全部不成功。如 A 给 B 要划钱,... 则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,已经提交的修改数据也不会丢失。## 3. 事务并发我们知道 MySQL 是一个客户端/服务器架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每...
字节跳动数据库的过去、现状与未来
面对如此庞大的应用规模和数据规模,如何在数据库领域进行数据管理和数据治理,成了摆在数据库团队面前的巨大难题。而在字节跳动内部,数据库建设主要面临三大挑战:**业务种类繁多**。以抖音为例,为了管理用户之间复杂的社交关系,同时根据用户点赞、关注等行为进行智能推荐,我们需要用图进行管理。再如抖音电商商城设计订单、库存等数据,这些信息适合用关系型结构化的结构表达。除此之外抖音还存在大量结构化和非结构化数据,如用...

点赞仅对互为好友的人可见的数据库结构-相关内容

字节跳动的云原生技术历程演进

开启数据库、缓存等存储系统的云原生化改造;* **2021 年**:联邦化多集群演进。从资源多云到应用多云,实现全场景应用编排和资源管理的标准化和统一化。目前基础架构的重点建设领域是**基于联邦化的多集群资源... 数据管理模型、资源管理等方面的共性需求抽取出来,沉淀到基础设施当中,使得开发者可以用更少、更简洁的代码高效表达自身的需求;* ****资源规模化**** :这种思路更多体现在优化上,关注资源池本身的规模化优势,通过...

硬核干货!一文掌握 binlog 、redo log、undo log|社区征文

hello,大家好,我是张张,「架构精进之路」公号作者。 在 MySQL 中我们经常会接触到三个核心日志,它们分别是:binlog 、redo log、undo log。好多同学对于它们可能并不陌生,但是具体区分起来各自的功能用途以... binlog 记录了对 MySQL 数据库执行更改的所有的写操作,包括所有对数据库的数据、表结构、索引等等变更的操作。> 注意:这其中不包含 SELECT、SHOW 等,因为对数据没有修改只要是对数据库有变更的操作都会记录到 ...

干货|Hudi Bucket Index 在字节跳动的设计与实践

借鉴了数据库里的 Hash Index。给定 n 个桶, 用 Hash 函数决定某个记录属于哪个桶。最终所有分区被分成 N 个桶,每个桶对应一个 File Group。相比较 Bloom Filter Index 来说,Hash Index 在逻辑层面提供了 Record Key 跟 File Group 的映射关系, 不存在假阳性问题。相同 key 的数据一定是落在同一个桶里面。最终一分区内的结构如下,目前一个 Partition 里面 Bucket 和 File Group 是一一对应的关系。![picture.image](https...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

实例选型指导

预估所需数据库资源根据如下业务指标来初步预估所需的数据库资源。 业务指标 说明 数据量 业务需要存储在 Redis 中的数据量峰值。 请求量(QPS) 业务每秒对 Redis 的请求量峰值。 带宽(BPS) 业务每秒对 Redis 请求的数据量峰值。 连接数 客户端对单个 Redis 实例的连接数峰值。 2. 选择实例架构根据预估出的资源需求,先选择合适的实例架构。缓存数据库 Redis 版当前支持如下两种架构。 实例架构 简介 适用场景 启用分片集群 启用...

字节跳动数据库的过去、现状与未来

面对如此庞大的应用规模和数据规模,如何在数据库领域进行数据管理和数据治理,成了摆在数据库团队面前的巨大难题。而在字节跳动内部,数据库建设主要面临三大挑战:**业务种类繁多。** 以抖音为例,为了管理用户之间复杂的社交关系,同时根据用户点赞、关注等行为进行智能推荐,我们需要用图进行管理。再如抖音电商商城设计订单、库存等数据,这些信息适合用关系型结构化的结构表达。除此之外抖音还存在大量结构化和非结构化数据,如用...

干货|Hudi Bucket Index 在字节跳动的设计与实践

借鉴了数据库里的 Hash Index。给定 n 个桶, 用 Hash 函数决定某个记录属于哪个桶。最终所有分区被分成 N 个桶,每个桶对应一个 File Group。相比较 Bloom Filter Index 来说,Hash Index 在逻辑层面提供了 Record Key 跟 File Group 的映射关系, 不存在假阳性问题。相同 key 的数据一定是落在同一个桶里面。最终一分区内的结构如下,目前一个 Partition 里面 Bucket 和 File Group 是一一对应的关系。![picture.image](...

约束与限制

当前仅支持修改部分参数。更多详细信息,请参见修改参数。 账号权限 不提供 root 权限。 数据库创建 支持以命令行方式创建数据库,但是若含有除下划线(_)或中划线(-)以外的特殊字符(如!@$%^&*()+=等),则不支持在控制台进行数据库授权和删除操作。 数据库备份 仅支持通过控制台或 API 进行物理备份。 数据库恢复 仅支持通过控制台或 API 进行物理恢复。 数据库复制 MySQL 提供主备复制架构,其中的备节点不对用户开放,用户应用不能直...

核心组件和产品架构

本文介绍缓存数据库 Redis 版的核心组件和产品架构。 核心组件数据节点数据节点是构建缓存数据库 Redis 版实例的最小单位,每个实例至少含有 1 个数据节点。若每个分片中仅包含 1 个节点,该实例无法提供数据持久化和高可用能力;若每个分片中节点个数超过 1 个,节点间一定具有主从关系。实例中的每个数据节点均使用相同的 Redis 版本(即您创建实例时选择的 Redis 版本)。一个实例中的所有数据节点规格均相同,且包含相同的内存量。缓...

Hudi Bucket Index 在字节跳动的设计与实践

借鉴了数据库里的 Hash Index。给定 n 个桶, 用 Hash 函数决定某个记录属于哪个桶。最终所有分区被分成 N 个桶,每个桶对应一个 File Group。相比较 Bloom Filter Index 来说,Hash Index 在逻辑层面提供了 Record Key 跟 File Group 的映射关系, 不存在假阳性问题。相同 key 的数据一定是落在同一个桶里面。最终一分区内的结构如下,目前一个 Partition 里面 Bucket 和 File Group 是一一对应的关系。![picture.image](htt...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询