如何在数据库中存储模型的状态,如枚举还是整数?

时间:2017-03-24 18:37:00

标签: php laravel

我在db

中有帖子表

帖子可以是草稿,发布和评论,开发人员在db中存储它的最佳和最常用的方法是什么?我应该使用带有这3个值的枚举列类型,还是应该将其存储为每个状态帖子的整数?你会做什么以及如何存储并稍后访问它并在前端显示它?

4 个答案:

答案 0 :(得分:2)

我喜欢使用3NF规范化,所以我会使用一个整数并为帖子状态创建一个单独的表,其中包含状态ID作为自动递增的主键,然后在需要显示状态时执行连接。 / p>

答案 1 :(得分:1)

如果您的状态值永远不会改变,请使用enum。否则使用整数(并在模型类中定义const变量来表示这些整数的值)。

但是,如果您的状态会有非常频繁的添加/更改/删除,请使用单独的表来存储可能的值。请注意,这会因为连接而不经常更改而降低性能

请参阅:this articlepost了解详情。

答案 2 :(得分:1)

在整数exp 0 | 1 | 2的表中,并创建新表post_type

id | yourtable_id   |  type
0       0              draft
1       1              published
2       2              reviewd

并使用join来获取他们的名字

答案 3 :(得分:1)

我会创建一个新表来保存可用的状态值,并将tinyinteger unsigned autoincrement字段作为id。然后我会使用post表中的id值将状态与帖子相关联。 这是将来维护和更新数据的最佳方式。