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

mysql设计好友关系表

MySQL是一款开源的关系型数据库软件,广泛应用于Web开发中,包括社交网站的设计。好友关系是社交网络中最重要的功能之一,设计好友关系表可以帮助我们更好地实现好友管理和扩展。

一、好友关系表的设计

MySQL中,我们可以使用一个表来存储好友关系,表的结构如下所示:

CREATE TABLE `friend` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` bigint(20) unsigned NOT NULL COMMENT '用户ID',
  `friend_id` bigint(20) unsigned NOT NULL COMMENT '好友ID',
  `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '好友关系状态',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `fk_user_id` (`user_id`),
  KEY `fk_friend_id` (`friend_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='好友关系表';

在这个表中,有以下字段:

  • id:主键,自增长,用于唯一标识一条好友关系记录。
  • user_id:用户ID,代表这个好友关系是哪个用户的。
  • friend_id:好友ID,代表这个好友关系是哪个好友的。
  • status:好友关系状态,表示两个用户之间的好友关系状态,可以是0(等待验证)、1(已经是好友)、2(被拉黑)等状态。
  • create_time:创建时间,表示这个好友关系是什么时候创建的。
  • update_time:更新时间,表示这个好友关系是什么时候最近更新的。

使用一个表来存储好友关系,相比于使用两个表(分别存储用户和好友信息),有以下优点:

  • 数据处理更加方便,减少了多余的查询和操作。
  • 可以轻松地扩展好友关系,如增加好友关系状态、好友关系标签等。

二、好友关系表的操作

  1. 添加好友关系

向好友关系表中添加一条好友关系记录,可以使用以下SQL语句:

INSERT INTO `friend` (`user_id`, `friend_id`,
本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
基于云平台的即开即用、稳定可靠、灵活弹性、易于使用的关系型数据库服务

社区干货

MySQL学习记录(第二天)

为查询缓存优化你的查询大多数的 MySQL 服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被 MySQL 的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作而直接访问缓存结果了。这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让 MySQL 不使用缓存。MySQL 的查询缓存对这个函数不起作用。所以...

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

### 1.1 binlog 设计目标binlog 记录了对 MySQL 数据库执行更改的所有的写操作,包括所有对数据库的数据、结构、索引等等变更的操作。> 注意:这其中不包含 SELECT、SHOW 等,因为对数据没有修改只要是对数据库有变更的操作都会记录到 binlog 里面来,我们可以把数据库的数据看做银行账户里的余额,而 binlog 就相当于我们银行卡的流水记录。账户余额只是一个结果,至于这个结果怎么来的,那就必须得看流水了。在实际应用中, ...

mysql的面向流程编程

MySQL是目前最受欢迎的开源关系型数据库管理系统,它具有高度的可靠性,高性能和扩展性。它的流程控制十分重要,因为MySQL能够将复杂的数据库管理任务自动完成,比如持续更新数据库后台,以及应用程序开发中所需的任何其... 而CASE语句用于根据某个达式的值来执行不同的SQL语句。另外,MySQL还提供了异常处理语句,可以在触发某个错误或异常时执行特定的SQL语句,以避免错误引起的数据库损坏。在MySQL中,对流程控制的处理也可以很灵活。...

精选文章|MySQL深分页优化

**MySQL分页语法**``` select * from table limit 0, 20 ```思考: 使用分页,上面提到的第2点,这些成本真的能降低吗? **建,造数据** ``` CREATE TABLE t1 ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键', m_id BIGINT N...

特惠活动

热门爆款云服务器

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

DCDN国内流量包100G

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

2核4G共享型云服务器

Intel CPU 性能可靠,不限流量,学习测试、小型网站、小程序开发推荐,性价比首选
86.00/1908.00/年
立即购买

mysql设计好友关系表-优选内容

mysql 函数
允许对存储在远程MySQL服务器上的数据执行SELECT和INSERT查询。语法 SQL mysql('host:port', 'database', 'table', 'user', 'password'[, replace_query, 'on_duplicate_clause']);参数 host:port — MySQL服务器地址. database — 远程数据库名称. table — 远程名称. user — MySQL用户. password — 用户密码. replace_query — 将INSERT INTO查询转换为REPLACE INTO的标志。0 - 查询被执行为 INSERT INTO。 1 - 查询被执行...
MySQL学习记录(第二天)
为查询缓存优化你的查询大多数的 MySQL 服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被 MySQL 的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作而直接访问缓存结果了。这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让 MySQL 不使用缓存。MySQL 的查询缓存对这个函数不起作用。所以...
mysql的面向流程编程
MySQL是目前最受欢迎的开源关系型数据库管理系统,它具有高度的可靠性,高性能和扩展性。它的流程控制十分重要,因为MySQL能够将复杂的数据库管理任务自动完成,比如持续更新数据库后台,以及应用程序开发中所需的任何其... 而CASE语句用于根据某个达式的值来执行不同的SQL语句。另外,MySQL还提供了异常处理语句,可以在触发某个错误或异常时执行特定的SQL语句,以避免错误引起的数据库损坏。在MySQL中,对流程控制的处理也可以很灵活。...
精选文章|MySQL深分页优化
**MySQL分页语法**``` select * from table limit 0, 20 ```思考: 使用分页,上面提到的第2点,这些成本真的能降低吗? **建,造数据** ``` CREATE TABLE t1 ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键', m_id BIGINT N...

mysql设计好友关系表-相关内容

ByteHouse MaterializedMySQL 增强优化

[MaterializedMySQL数据库引擎](https://xie.infoq.cn/link?target=https%3A%2F%2Fclickhouse.tech%2Fdocs%2Fen%2Fengines%2Fdatabase-engines%2Fmaterialized-mysql%2F),用于将 MySQL 中的映射到 ClickHouse 中... 从源端全量拉取该表的数据至临时表(A_CHTMP,表名后缀会加上_CHTMP)1. 删除目标端原有表 A(如果存在)1. 将临时表 A_CHTMP RENAME 为 A1. 开始增量同步### 删除库删除 ByteHouse 中的库以及同步关系。...

MySQL 参数解析 max_connections 与user.max_connections

# 问题描述参数组的max_connections 与 mysql.user 中的 max_connections 以及 max_user_connections 谁的优先级更高?# 问题分析## 参数组中的max_connectionsmax_connections 是一个全局的概念,意味着服务器所能承受的最大连接数,针对所有用户。比如设置为2000,意味着这个实例的最大连接数只能到达2000。```sqlmysql> show variables like 'max_connections';+-----------------+-------+| Variable_name | Value |...

MySQL 统计信息相关参数解析

# 前言MySQL 中的优化器是基于成本的优化器(CBO),所谓基于成本,代着运行目标 SQL 语句需要消耗的 CPU,扫描行数,IO 等,这些信息是基于统计信息来获得的。如果统计信息不准确,优化器很可能选择那些不够优化,甚至是错误的执行计划。对于统计信息的搜集方式有两种:1. 非持久化统计信息2. 持久化统计信息# 非持久化统计信息所谓的非持久化统计信息,指的是统计信息没有持久化到磁盘上,如果数据库重启,统计信息将全部丢失。设...

热门爆款云服务器

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

DCDN国内流量包100G

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

2核4G共享型云服务器

Intel CPU 性能可靠,不限流量,学习测试、小型网站、小程序开发推荐,性价比首选
86.00/1908.00/年
立即购买

表设计之数据类型优化 | 社区征文

比如应该使用 MySQL 内建的类型而不是字符串来存储日期和时间。### 2.3 避免 NULL很多都包含可为 NULL(空值)的列,即使应用程序并不需要保存 NULL 也是如此,这是因为可为 NULL 是列的默认属性。通常情况下最好... 就应该尽量避免设计成可为 NULL 的列。## 3. 整数类型存储整数,可以使用这几种整数类型:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT。分别使用 8,16,24,32,64 位存储空间,也就是 1、2、3、4、8 个字节。它们可以存...

MySQL 8.0测试结果

本文介绍 MySQL 8.0 性能测试的测试结果。 按最优线程数对比不同规格性能 SysBench 参数:--oltp-tables-count=64 --oltp-table-size=10000000 产品类型 规格代码 节点规格 单数据量 表数量 最大连接数 线程数 TPS QPS 高可用版 本地盘类型 rds.mysql.1c2g 1C2G 10000000 64 600 8 305.26 6105.15 rds.mysql.2c4g 2C4G 10000000 64 1200 16 623.39 12467.83 rds.mysql.4c8g 4C8G 10000000 64 2000 32 1260.85 25216.98 rds.mys...

MySQL 8.0:新的身份验证插件(caching_sha2_password)

MySQL 5.6/5.7 的默认密码插件一直以来都是 mysql\_native\_password。其优点是它支持 challenge-response 机制,这是非常快的验证机制,无需在网络中发送实际密码,并且不需要加密的连接。然而,mysql\_native\_password 依赖于 SHA1 算法,但 NIST(美国国家标准与技术研究院)已建议停止使用 SHA1 算法,因为 SHA1 和其他哈希算法(例如 MD5)已被证明非常容易破解。此外,由于 mysql\_native\_password 在 mysql.user 中 authen...

RDS for MySQL 慢SQL问题分析

# 问题描述我的 RDS for MySQL 慢查询数很高,我该如何排查问题并解决?如下图:在 RDS MySQL 控制台上点击 "监控告警","引擎监控",再点击 "访问",查看 "慢查询数" 指标,会发现在一个时间段内出现尖刺![alt](https://lf3-volc-editor.volccdn.com/obj/volcfe/sop-public/upload_a97d36beb6b05590c845979bf89faa28.png)# 问题分析在真实的使用场景中,总体的架构设计和数据库表设计都会影响数据库的查询性能,优秀的架构设计...

RDS for MySQL 慢SQL问题分析

# 问题描述我的 RDS for MySQL 慢查询数很高,我该如何排查问题并解决?如下图:在 RDS MySQL 控制台上点击 "监控告警","引擎监控",再点击 "访问",查看 "慢查询数" 指标,会发现在一个时间段内出现尖刺![图片](https://lf3-volc-editor.volccdn.com/obj/volcfe/sop-public/upload_a97d36beb6b05590c845979bf89faa28.png)# 问题分析在真实的使用场景中,总体的架构设计和数据库表设计都会影响数据库的查询性能,优秀的架构设计会提...

MySQL_to_ByteHouse 云数仓版实时整库同步

一键实时整库同步方案支持全增量一体化同步,本实践中,先将 MySQL 源端全量数据通过离线任务同步方式迁移,然后再通过实时同步增量任务,将增量数据采集至目标端 ByteHouse 云数仓版(ByteHouse CDW)数据库中。您也可以选择单独进行实时增量数据同步,该场景适用于您已经通过其他方式将全量数据同步至 ByteHouse CDW,本文为您介绍如何创建一键实时同步,将全量和增量数据同步至 ByteHouse CDW 数据库中。 1 前置操作已开通并创建 Dat...

特惠活动

热门爆款云服务器

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

DCDN国内流量包100G

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

2核4G共享型云服务器

Intel CPU 性能可靠,不限流量,学习测试、小型网站、小程序开发推荐,性价比首选
86.00/1908.00/年
立即购买

产品体验

体验中心

云服务器特惠

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

白皮书

数据智能知识图谱
火山引擎数智化平台基于字节跳动数据平台,历时9年,基于多元、丰富场景下的数智实战经验打造而成
立即获取

最新活动

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

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

火山引擎增长体验专区

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

数据智能VeDI

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

一键开启云上增长新空间

立即咨询