只有两行的表如何设置约束?
| key| content | expire |
| access_token | xxxx | 111111111 |
| jsapi_ticket | xxxx | 111111111 |
只作为缓存,所以每次查询或者修改“content”和“expire”内的内容,“key”内的内容作为标示。
最开始我只是建立这两个表,没有设置主键和约束,但是这样查询和更新都会出现错误。
我的问题是:
1.必须要把key设置成主键吗?
2.不设置主键就没有办法查询和更新吗?(或者说简单的方法)如果有那么该如何建表?
以上。
回复内容:
因为微信公众平台开发需要对access_token和jsapi_ticket进行缓存,所以建立了一个wx_token的表,表有三个字段,两行数据,如下:
| key| content | expire |
| access_token | xxxx | 111111111 |
| jsapi_ticket | xxxx | 111111111 |
只作为缓存,所以每次查询或者修改“content”和“expire”内的内容,“key”内的内容作为标示。
最开始我只是建立这两个表,没有设置主键和约束,但是这样查询和更新都会出现错误。
我的问题是:
1.必须要把key设置成主键吗?
2.不设置主键就没有办法查询和更新吗?(或者说简单的方法)如果有那么该如何建表?
以上。
1、主键就相当于 唯一值+索引 的功能,你key字段的记录往下会有重复吗?你建表的时候忘加或者后期需要主键,可以后期添加的,有索引的话,当你记录数足够多时效率大大提高。(也可以单独创索引)
2、索引除了提高查询速度外,也能提高UPDATE,DELETE,INSERT操作的速度,比如你这里经常会使用:
select * from wx_token where key='access_token';
或者
update wx_token set content='值',expire='值' where key='access_token';
主要看记录数量、哪种DML语句执行的频繁来做决定。
AccessToken 和 Ticket 是有过期时间的,因此不建议使用数据库作为缓存层,可以考虑使用内存缓存(Apc 或 memcached)等。
https://github.com/thenbsp/wechat/blob/master/documentation/accesstoken.md
https://github.com/thenbsp/wechat/blob/master/documentation/ticket.md
下一篇: Php根据短地址转换为源地址
推荐阅读
-
暴风影音如何设置不会卡帧解决画面停住只有声音的问题
-
Android如何设置只有边框背景透明的背景呢?
-
小弟我的表P_id没设置为自动增长,插入数据时小弟我要通过程序控制p_id自动增长,该如何做。求教
-
Excel2010如何打印多份文件即按照设置的份数打印所选工作表
-
只有两行的表如何设置约束?
-
使用 doctrine orm 如何在程序逻辑上实现在一张表完成两个外键的设置(或则说一个实体完成两个多对一的关系)?
-
mysql缺少外键约束的时候,如何合理的更新两张相关联的表?
-
范式、数据库表的创建、修改和约束设置
-
创建mysql数据表的时候没有设置自增,后面如何设置成自增
-
只有两行的表如何设置约束?