各行が顧客の予約であるテーブルがある場合、このテーブルに 2 つの外部キーがあっても問題ありませんか? 1 つは null になり、もう 1 つは適切な主キーを参照します。外部キー制約がこのテーブルに適用された 2 つのテーブルがある理由は、予約がサービスのパッケージ (service_package) または単一のサービス (service) の予約である可能性があるためです。
関数やストアド プロシージャを使用して制限を適用しない限り、同じ予約行に 2 種類の予約を登録することが可能になるため、これは悪い設計であると思います。
この解決策は問題ありませんか、または提供されるサービスのより一般的なテーブルを作成するなど、これを行うためのより良い方法はありますか?