Journey というテーブルに STI を使用しています。人々は旅行のリクエスト/オファーを投稿するため、Discriminator は Driver または Passenger のいずれかになります。つまり、運転して他の乗客を連れて行くことをいとわない人、または単にヒッチハイクしている人 (乗客) によって投稿された旅行があることを意味します。したがって、これら 2 つはほとんどの属性 (出発日、ソース、目的地など) を共有しますが、投稿しているユーザーのタイプが原因で名前の衝突が発生します。
たとえば、私が乗客の場合、友人と一緒に旅行したいと指定できます (つまり、PassengerCount = 2 となります。つまり、空席が 2 つ以上あるドライバーを探します)。または、荷物を持っていきたい (つまり、HaveLuggage = true、つまり、荷物を持って行ける乗り物を探している) ことに気付くかもしれません。
一方、私が運転手であれば、利用可能な座席数 (AvailableSeats) を指定できるフォームに入力する必要があります。荷物を運ぶことができない (TakesLuggage=false) ことに注意する必要があります。
PassengerCount - AvailableSeats 列と HaveLuggage - TakesLuggage 列は同じですが、ポスターの観点からは名前だけが異なります。
問題は、混乱を最小限に抑えるために、どの命名規則に従うべきかということです。また、このようなテーブル (STI) を 1 つ用意することは良い考えですか? そうでない場合は、どの代替案をお勧めしますか?