私のデータベースには、組織テーブルと住所テーブルがあります。アドレス テーブルにユーザー ID と組織 ID を保存して、後でこれらを検索できるようにし、組織またはユーザーが別の組織に追加したアドレスを選択できるように、複数のアドレスを保持したいと考えています。ここでの例は、2 つの組織が同じプロパティを共有している場合です。また、組織テーブルにデフォルトのアドレス ID を保存したいと考えています。ただし、FuelPHP で ORM モデルを使用する場合、これは扱いにくいことがわかります (おそらく無関係です。設計上の弱点の可能性に注意を払う必要がありました)。
上記は 1 つのオプションです。あと 2 つの解決策が考えられます。1 つは、組織 ID とアドレス ID を格納するデフォルトのアドレス テーブルを用意することです。アドレス テーブルには、引き続きユーザー ID と組織 ID を格納できます。次に、組織テーブルの内部結合からデフォルトのアドレス テーブルを選択し、アドレス テーブルからアドレス ID を内部結合してアドレスを取得します。
2 番目のオプションは、アドレス テーブルにデフォルトのアドレス フィールドを bool 型として設定することです。次に、select で where ステートメントを使用して、必要に応じてこのアドレスを取得します。
2 番目のオプションは、テーブルを変更したり、キーを追加したり、PHP フレームワークの ORM モデルに関係を設定したりする作業をあまり行う必要がないため、現時点では私の好みのオプションです。ただし、データベースが大きくなり、パフォーマンスが問題になる場合、これらの方法のどれが最適ですか? 私が考慮していない他の方法はありますか?