回答

收藏

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

技术问答 技术问答 306 人阅读 | 0 人回复 | 2023-09-14

我出于好奇而问这个问题。基本上,我的问题是,当您拥有一个需要行条目才能具有像标志作用的事物的数据库时,最佳实践是什么?一个很好的例子就是堆栈溢出的标志,或者是bugzilla中的操作系统字段。可以为给定条目设置标志的任何子集。: W, K/ z- x7 |1 x0 w
通常,我会进行c和c+ C& [3 {4 Q2 M) ?. v1 H! D/ e' p
++的工作,因此我的直觉反应是将无符号整数字段用作一组可以翻转的位…但是我知道,由于多种原因,这不是一个好的解决方案。其中最明显的是可伸缩性,我可以拥有多少个标志将有一个严格的上限。* l" w; V4 P: e9 D" L9 k
我还可以想到其他几个解决方案,它们可以更好地扩展,但会出现性能问题,因为它们需要多次选择才能获得所有信息。  K& l) U1 `. d* x6 y5 `
那么,执行此操作的“正确”方法是什么?
! u3 N  A4 H$ R4 X               
$ b7 I$ p0 s) W6 K! N1 }解决方案:1 R9 K$ ]" a/ g+ P4 w
                ( g7 m- F0 E  }* O! l3 G
$ r" K% ]1 M) @) p
& f! D9 E6 z( H
                如果您确实确实需要从一组封闭的标志(例如stackoverflow徽章)中进行无限制的选择,那么“关系方式”将是创建一个标志表和一个单独的表,这些表将这些标志与您的目标实体相关联。因此,用户,标志和usersToFlags。# {( Q4 ~2 n. b+ H
但是,如果空间效率是一个非常重要的问题,而查询能力却不是,则无符号掩码几乎同样适用。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则