数据库字段怎么设计-主键、状态、时间与约束
表结构定下来之后,很多人会松一口气,觉得差不多就行了。真正让系统在半年后变得难以维护的,往往是设计字段层面当时觉得“差不多就行”的决定。 字段并不是给值存下来就行,他决定了业务事实如何被记录,如何被查询,如何被约束以及未来如何演进。一个设计不当的字段,后面会以“状态判断越来越复杂”,“金额对不上”,“唯一性靠代码硬保证
1435597771 · Sep 10, 2026
A gentler place to notice progress, write what matters, and keep becoming the person you want to be.
表结构定下来之后,很多人会松一口气,觉得差不多就行了。真正让系统在半年后变得难以维护的,往往是设计字段层面当时觉得“差不多就行”的决定。 字段并不是给值存下来就行,他决定了业务事实如何被记录,如何被查询,如何被约束以及未来如何演进。一个设计不当的字段,后面会以“状态判断越来越复杂”,“金额对不上”,“唯一性靠代码硬保证
1435597771 · Sep 10, 2026
在本篇文章中,我们只解决一个问题: 一段业务需求,到底应该变成那些表? 数据库设计中的很多问题,在建表初期就已经埋下了隐患。业务后期如果要对前期草率的设计做改动,成本极高——查询会越来越扭曲,数据不一致的问题也会频发。 正确的路径其实很清晰:先从业务中识别 实体 、 属性 和 关系 ,再决定表结构、外键位置和是否需要中
1435597771 · Sep 2, 2026
什么是set Set 是Redis的基本数据结构之一,他是一个无序并且唯一的键值集合,他的存储顺序不会按照插入的先后顺序进行存储。 在一个集合中最多可以存储2^32-1个元素。但是这个元素数量是对Dict作为底层实现而言的,默认情况下,只有当整数个数不超过 512 个时 Redis 才会使用 IntSet,超过这个
1435597771 · Jul 23, 2026
JetStream是什么 JetStream时NATs这个消息队列中内置的持久化流层,他在CoreNats的基础上增加了消息持久化、历史消息消费以及失败重投能力。 与CoreNats最多一次的消息语义相反,JetStream采用至少一次投递语义,即只要消息没有被确认,系统会尝试重新投递消息,使消息有机会被消费者处理。之
1435597771 · Aug 13, 2026
本文从同步调用的问题出发,介绍 Core NATS 的最小发布订阅模型,包括Publisher、Subscriber、Subject 和 NATS Server,并通过异常场景解释其“至多一次”语义。 同步与异步 在开始之前,我们需要先了解一下,同步和异步的区别,为什么有同步和异步之分。 我们需要想象一下,在程序中有订
1435597771 · Aug 4, 2026
普通Pub/Sub订阅模型 普通 Pub/Sub 是 Core NATS 最基础的通信模型。Publisher 向 Subject 发布消息,所有匹配且当前活动的独立 Subscriber 都可以获得一份消息。 但是普通的Pub/Sub订阅模型无法解决下面两个场景 多实例场景:邮件服务有两个实例, 都订阅jobs.em
1435597771 · Aug 4, 2026