我正在寻找一种策略,以阻止分支表的重复问题.例如,作为一个虚构的用例,假设我有一个用户表,其中包含他们的姓名,登录名,密码和其他元数据.在这种特定情况下,假设用户被限制为按照特定的IP子集登录.因此,我们有1:M的关系.每次出现如下用例时,您的正常工作流程包括具有"用户"表和"user_ips"等表格,在这种情况下,您将拥有诸如pk(ip_id),fk之类的内容( user_id)和user_ips侧的IP.
对于类似的情况,你们这些人通常会像上面那样流行吗?有机会在这里有效地反规范化吗?也许以某种CSV分隔的方式将IP存储在BLOB列中?您今天正在部署的策略有哪些?
非规范化的机会?我认为你可能误解了传统智慧 - 非规范化是一种优化技术.不是你要找的东西.
我怀疑当潜在相关项的数量很大时,任何规范化的解决方案都会在正确索引的情况下执行非规范化解决方案.我的策略是规范化数据库,然后提供视图或基于表的函数,这些函数利用索引连接来使成本可以承受.我要求性能要求转向非规范化形式.
记住这一点.如果需要对部分信息实施基于角色的安全性访问,则基于表的安全性比基于列的安全性更容易实现,尤其是在数据库或数据层级别.