小编典典

数据库行中的标志,最佳实践

sql

我出于好奇而问这个问题。基本上,我的问题是,当您拥有一个需要行条目才能具有像标志作用的事物的数据库时,最佳实践是什么?一个很好的例子就是堆栈溢出的标志,或者是bugzilla中的操作系统字段。可以为给定条目设置标志的任何子集。

通常,我会进行c和c
++的工作,因此我的直觉反应是将无符号整数字段用作一组可以翻转的位…但是我知道,由于多种原因,这不是一个好的解决方案。其中最明显的是可伸缩性,我可以拥有多少个标志将有一个严格的上限。

我还可以想到其他几个解决方案,它们可以更好地扩展,但会出现性能问题,因为它们需要多次选择才能获得所有信息。

那么,执行此操作的“正确”方法是什么?


阅读 171

收藏
2021-04-17

共1个答案

小编典典

如果您确实确实需要从一组封闭的标志(例如stackoverflow徽章)中进行无限制的选择,那么“关系方式”将是创建一个标志表和一个单独的表,这些表将这些标志与您的目标实体相关联。因此,用户,标志和usersToFlags。

但是,如果空间效率是一个非常重要的问题,而查询能力却不是,则无符号掩码几乎同样适用。

2021-04-17