Django複合キーでの外部キー(ほかのやり方模索中)
今日1日悩んだが結局未解決というよりDB自体が対応してなかったりして非推奨だと思われる
それでも何とか実装できそうだったのは間に複合とするFieldの組み合わせのみのテーブルを作成しそのテーブルの主キーを用いて外部キーとするもの
class Card_link_field(models.Model):
card_field_id = AutoField(primary_key=True);
table_id= ForeignKey(GameTable,on_delete=SET_NULL ,null= True )
table_player_id=ForeignKey(Card,GameTable,on_delete=SET_NULL ,null= True)
class Meta:
unique_together=(("table_id","table_player_id"))
一応これであれば実装は可能
table_id と table_player_id のユニークな組み合わせを持つテーブルを作成
それに対してIDをふりこのIDをもって外部キーにするという方法
確かに組み合わせに対して番号を振ってその番号を外部キー指定すれば
番号からtable_id と table_player_idを引っ張ってくることは可能であると考える
ただ、こうしっくりこないのでもっとうまい方法があれば募集。
正直DBに登録してというのがだんだん間違っている気がしているので悩ましい
明日には解決したい。
この記事が気に入ったらサポートをしてみませんか?