0

(お気に入りのフレームワークに名前を付けて)にいくつかのモデルがある場合:

# pseudo-code
class Fruit
    primary_key = CompositeKey(tenant_id, object_id)
    weight = DecimalField()

class Restaurant
    primary_key = CompositeKey(tenant_id, object_id)
    haz_cheeseburger = BooleanField()
    fruit_available = ForeignKey(Fruit)  # <-- important part

主キーポイントの一部であるwhoResaturantとのポイントを挿入できないようにするデータベース制約を設定することは可能ですか。基本的に、異なるテナントに属するオブジェクトを誤って関連付けることから私を保護します。tenant_idTenantAfruit_availabletenant_idTenantB

4

1 に答える 1

1

私の理解が正しければ、外部キーを設定できるかもしれません。レストランのテーブルでは、

FOREIGN KEY        (tenant_id, fruit_available) 
  REFERENCES fruit (tenant_id, fruit_available)

一部はデータベースに依存し、一部はに何らかの一意の制約があるかどうかに依存しますfruit (tenant_id, fruit_available)

ただし、Restaurant の主キーの一部として間違った tenant_id を使用することを防ぐことはできません。

于 2011-10-19T21:40:18.233 に答える