私はテーブルの「許可」を持っています
| user_id | object_id | readable | writable |
次のルールを使用して、指定されたobject_idが現在のuser_idからアクセスできるかどうかを確認する必要があります。
- object_idのレコードがまったくない場合は、true を返します
- 指定されたuser_idのレコードがなくても、object_idのレコードはあるが異なるuser_idのレコードがある場合は、 false を返します。
- 指定されたuser_idおよびobject_idのレコードがある場合は、指定された読み取りおよび書き込み可能な条件を再度確認します
ネストされたクエリを含まないSQLクエリを構築できるかどうかはわかりませんが、今のところ
select (
    select count(*) 
    from permission 
    where 
        object_id = 123456
    ) == 0 OR (
        select readable=true, writable=false 
        from permission 
        where user_id=1 and object_id=123456
    )
よりエレガントなソリューションはありますか?
ありがとう!