MySQL / DB设计:用于项目可见性的列,即“公共”,“私人”等

时间:2018-02-27 03:49:20

标签: mysql database-design

我想在表格上添加一列以获得可见性。我喜欢标准的YouTube方法,其中一个项目可以是公开的,私有的或不公开的。我之前从未做过这样的事情,所以我很好奇其他人是怎么做到的,以及在我在我的应用程序中实现它之前的权衡取舍。

将这些字符串存储为publicprivateunlisted等硬字符串是不是一个坏主意,还是有更好的方法?

我会在很多查询中检查该字段,例如在我的Feed中我只想显示公共项目,因此在这些查询中必须有类似WHERE visibility = 'public'的内容。

2 个答案:

答案 0 :(得分:1)

如果与数据库的所有交互都保持一致,最好使用ORM,并且可见性选项列表不会长时间增长,然后将这些字符串直接放入"可见性&#34 ;专栏对我来说似乎很合理。

答案 1 :(得分:1)

如果您使用

ENUM('unknown', 'public', 'private', 'unlisted')

你可以使用人类可读的东西,例如完全相同的

WHERE visibility = 'public'

以及只需1个字节即可存储信息的优势。

(有些人认为ENUM很糟糕;我不这么认为。)