Mysql关于表的状态字段设计

新手上路,请多包涵

目前设计的,一件商品的刚填写完一些基础信息后,属于未发布的状态,此时status=1,确定发布后,status=2
现在又有一个上架功能,分为已上架和已下架两个状态

问题是 : 是再加一个状态字段来记录上下架的值, 还是顺着现有的发布状态字段往后写,比如 已上架status=3 已下架status=4
感觉如果确定发布后,默认是已上架,那么2和3可以合成一个,即2代表 已发布&&已上架 然后3代表已公布&已下架

在页面上需要展示两个状态,即发布状态 上架状态

是用一个字段,还是两个字段比较好呢?

阅读 4.9k
3 个回答

可以用两个字段分别表示发布状态和上架状态。

非要用一个字段的话,建议用位运算同时表示两个状态,如
00 = 0 表示未上架,未发布
01 = 1 表示已下架,已发布
11 = 3 表示已上架,已发布

用一个字段

  • 未发布|草稿
  • 上架
  • 下架

已发布未上架,这个状态感觉有点奇怪

看了一下某个开源商城,它只用了 状态(0:未上架,1:上架)

其实感觉 0:未上架,1:上架 这也已经够了。 未发布和已发布不就是上架和下架吗,名字不同而已

如果 未发布已发布 功能上有所不同,比如已发布的商品锁定了编辑,和未上架可编辑冲突如的话 那么建议两个字段。

状态不冲突的情况下,一个字段就行。如果状态会冲突,就两个字段。

如果以后需求还要改,比如说出现下面的情况
准备上架
已经下架,状态是不可购买(已下架的商品要和未发布的区分)
发布的商品不显示在商品列表中
。。。

那就最好是提前做好准备,分成两个字段

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题