やっぱりミスがあった

1:1や1:nは表現できても、言語仕様のレベルで直接にはn:mの構造を作れない以上、マッピングテーブルが必要になるんだけど、今のコードだとそのテーブル間のマッピング用テーブルにidを振ってない。データ構造上、複合キーで必ずユニークになることが保証されてるからテストしたときには気づかなかったけど、きちんとユニークなidを割り当てるように修正しておこう。id integer auto incrementみたいな感じで。あとはとくにテーブルの構造には問題ないみたい。関連資料を軽く流し読みしただけだから、もう少し詳しく読み込まないといけないけど。さすがにA4で印刷すると30枚ちょっとある英語ドキュメントを全部精読するのは時間がかかります。