我想在表格上添加一列以获得可见性。我喜欢标准的YouTube方法,其中一个项目可以是公开的,私有的或不公开的。我之前从未做过这样的事情,所以我很好奇其他人是怎么做到的,以及在我在我的应用程序中实现它之前的权衡取舍。
将这些字符串存储为public
,private
,unlisted
等硬字符串是不是一个坏主意,还是有更好的方法?
我会在很多查询中检查该字段,例如在我的Feed中我只想显示公共项目,因此在这些查询中必须有类似WHERE visibility = 'public'
的内容。
答案 0 :(得分:1)
如果与数据库的所有交互都保持一致,最好使用ORM,并且可见性选项列表不会长时间增长,然后将这些字符串直接放入"可见性&#34 ;专栏对我来说似乎很合理。
答案 1 :(得分:1)
如果您使用
ENUM('unknown', 'public', 'private', 'unlisted')
你可以使用人类可读的东西,例如完全相同的
WHERE visibility = 'public'
以及只需1个字节即可存储信息的优势。
(有些人认为ENUM很糟糕;我不这么认为。)