我在问好奇。基本上我的问题是,当你有一个数据库需要一个行条目来让事情像标志一样行事时,最佳实践是什么?一个很好的例子就是堆栈溢出的徽章或bugzilla中的操作系统字段。可以为给定条目设置标志的任何子集。数据库中的标志行,最佳实践
通常,我做C和C++的工作,所以我的直觉反应是使用无符号整数字段作为可以翻转的一组位...但我知道这不是一个好的解决方案,原因有几个。其中最明显的是可扩展能力,对于我可以拥有多少标志将会有一个硬性上限。
我也可以考虑一些其他解决方案,它们的规模会更好,但会有性能问题,因为它们需要多个选项才能获取所有信息。
那么,什么是“正确”的方式来做到这一点?
只对未签名的掩码发出警告。如果您必须编写查询来过滤设置了特定位的行,那么当行数变大时,您的性能将受到严重影响,因为where子句中的逻辑和/或操作无法有效地使用索引。 – JohnFx 2008-10-01 22:26:26