【问题标题】:Unique key across tables跨表的唯一键
【发布时间】:2021-04-05 00:35:22
【问题描述】:

我有上面图片中的表模式,现在我要求permission_key 和该permission_value 的(key, value) 对的组合是唯一的,这意味着不能没有两个值,例如

  1. id => 1, permission_key => "test" 带有权限密钥 key => "test", value => "thisisatest"

那就不能再有一个了

  1. id => 2, permission_key => "test" 带有权限键 key => "test", value => "thisisatest"

但可以有另一个值,例如

  1. id => 2, permission_key => "test" 带有权限密钥key => "test", value => "thisisnowanothertest"

重要 然后允许另一个permission_key具有相同的键值对,例如

  1. id => 3, permission_key => "another" 带有权限键 key => "test", value => "thisisatest"

是允许的。

我想对 permission_key 和每个 key => value 键对进行哈希处理以强制唯一性,但因此我需要一个合适的哈希函数。

只是没有多个permission_value具有相同的键值对。

如果不可能,我考虑过使用mongodb,我认为复合唯一索引可能适合这个?

【问题讨论】:

    标签: sql hash unique


    【解决方案1】:

    这听起来像你想要一个唯一的约束。我认为这就是您所描述的:

    alter table permission_keys add constraint unq_permision_keys_2
        unique (key, value)
    

    【讨论】:

    • 不,因为这样我可以创建两个具有相同权限键但不同 id 的条目,具有相同的键值对。
    • 然后省略id
    • 是的,但是我不能在另一个权限键上拥有相同的键值对
    猜你喜欢
    • 1970-01-01
    • 2012-01-27
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    相关资源
    最近更新 更多