领域对象建模1:正确使用createdAt和updatedAt

本文通过框框网促销商品管理的例子,探讨如何正确使用createdAt和updatedAt字段来跟踪领域对象的状态变化,简化数据库建模。文章指出,利用这两个字段可以记录对象的创建时间及状态更新时间,无需为每个状态添加单独的时间戳,降低了数据库表的复杂性,并减少了因需求变更导致的额外工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转帖:http://xiaoqing.me/2011/12/domain-model-createdat-updatedat/

编程时,大家会经常用到两个字段,createdAt和updatedAt。不但很多公司有这样的数据库规范要求,一些框架对它们也有天然的支持。不过你知道如何正确使用它们吗?别忙,先让我们看一个小例子。

框框网是一家刚起步的B2C网站,为了招揽人气,准备在春节前搞一个促销专区,吸引大家抢购。做为框框网的开发人员,小明参与了这个任务的开发。他收到的需求是:管理员可以在指定时间把促销商品上架,用户可以看到并购买。小明有一定的工作经验,稍做分析,就建立了名为“促销商品”(PromotionItem)的对象,包含两个状态:NEW和ONLINE,分别表示新建和已上架。并且设计了一个额外的字段onlineTime,如图所示:

[align=center][img]http://dl.iteye.com/upload/attachment/0072/0802/dd1af7ae-84cb-3917-ba9d-73d74275c4de.png[/img][/align]

这样,不但可以知道促销商品是否已经上架,如果需要的话,管理员也可以知道上架的时间。
开发完成以后,一切工作正常。几天后,小明接到业务的反馈:如果缺货或者万一出错,管理员可以把促销商品撤下来,即下架。小明挠了挠脑袋,添加了一个新的状态:OFFLINE来表示下架。但是如果不添加offlineTime,万一业务想查看商品啥时候下架怎么办?考虑来考虑去,又在数据库表上添加了一个字段offlineTime。同时他想到应该把商品的卖出时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值