我想在表上添加一个列以备可见性。我喜欢标准的YouTube方法,其中一个物品可以是公共,私人或未列出的。我以前从未做过这样的事情,所以在我在应用程序中实施之前,我很好奇别人的做法以及他们的权衡是什么。
。将它们存储为public
,private
,unlisted
之类的硬字符串还是有更好的方法是一个坏主意吗?
我会在很多查询中检查该字段,例如在我的提要中,我只想显示公共项目,因此在这些查询中必须有类似WHERE visibility = 'public'
的内容。
如果使用
ENUM('unknown', 'public', 'private', 'unlisted')
您会获得使用人类可读物品的优势,例如完全相同的
WHERE visibility = 'public'
和仅拿1个字节存储信息的优点。
(有人认为枚举不好;我不这么认为。(
如果与DB的所有交互保持一致,最好与ORM保持一致,并且可见性选项的列表不会出现异常长,然后将这些字符串直接放在"可见性"列中对我来说是完全合理的。