Vic*_*tor 5 database database-design
我关注性能,工程和可读性.假设我有一个博客,每个帖子都有其状态:已发布(4),待审核(2),草稿(1).建议将这些信息存储在status
列中?
status <======= storing status as string
========
pending
published
draft
status <======= storing status as integer
========
2
4
1
Run Code Online (Sandbox Code Playgroud)
另外,如果我们应该存储整数,我们应该避免存储运行的整数:1, 2, 3, 4, 5
,而不是存储^ 2整数:2, 4, 8, 16, 32
?
非常感谢.
我认为,对于更快的性能,更少的存储空间和可读性,最好的选择是使用CHAR(1) - (p)ublished,pending(r)eview和(d)raft.您可以使用CHECK约束或外键引用来验证该数据.
CHAR(1)占用的空间比整数少得多.它可以被人类直接读取,因此它不需要连接来理解它.由于它既小又可立即读取,即使在数千万行的表上,您也可以获得比整数上的连接更快的检索.