为了账号安全,请及时绑定邮箱和手机立即绑定

在数据库中使用调整大小的列或拆分表

在数据库中使用调整大小的列或拆分表

PHP
慕标琳琳 2023-07-08 16:41:34
我想在MySql数据库中存储以下数据(通知数据):id: VARCHAR(10)from_id: VARCHAR(10)to_id: VARCHAR(10)类型:int(2)type_info:(本专栏的问题)日期:时间戳知道该列type_info根据列的内容确定其内容,type我有4种情况:如果 type = 1 type_info 将为空如果类型 = 2 类型信息 = id1如果类型 = 3 type_info = id1/id2如果类型 = 4 type_info = id1/id2/id3笔记:-id1,id2和id3是VARCHAR(10)(是评论,回复,页面的id......)- 要提取值(id1、id2 和 id3),我在 / (PHP)上使用explode() 函数- type_info列不需要更新其内容。我所需要的只是 INSERT 和 SELECT-我以 gson 形式获取数据。所以我的问题是:为了提高查询SELECT * FROM table WHERE date > dateValue 速度,我是保持表设计不变还是有更高效的设计?如果我把Table按类型列分成4张表,是不是会更好?通知表:  id/from_id/to_id/type/dateType_1表:notfication_i/id1Type_2表:notfication_i/id1/id2Type_3表:notfication_i/id1/id2/id3注意:上面只考虑提高查询速度的最佳表设计这样的设计合适吗?
查看完整描述

1 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

简单的答案 - 将多个数据项嵌入到单个列中是不好的做法。由于您的数据包含多个不同表中的外键列表,因此您应该创建单独的列,每个潜在外键对应一个列。

每列都有自己的索引,允许快速查找每种数据类型的数据,而无需使用字符串函数操作数据。

拥有 3 个可能为空的列的开销可以忽略不计。


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信