OK - これは簡単かもしれませんが、ATK4 のどこに何を入れる必要があるかを視覚化するのに苦労しています。
ID、名前、参照の列を持つテーブル (チーム) があります。id は自動インクリメント列であり、参照です。テーブルには、このような3つの行があります
id, name, last_ref
1, 'Team 1', 1000
2, 'Team 2', 1000
3, 'Team 3', 2000
列 id、name、team_id、team_ref を持つ別のテーブル (ストーリー) があり、データを入力すると次のようになります
id, name, team_id, team_ref
1, 'Story A', 1, 1001
2, 'Story B', 1, 1002
3, 'Story C', 1, 1003
4, 'Story D', 2, 1001
5, 'Story E', 3, 2001
ストーリー テーブルへの挿入ごとに、チーム テーブルで team_ref が検索され、1 ずつインクリメントされ、ストーリー行に対して結果が格納されます。他の誰かがストーリー テーブルに新しい行を挿入した場合に備えて、last_ref フィールドもすぐに更新する必要があります。
上記をストーリー テーブルに挿入すると、チーム テーブルは次のようになります。各チームは独自のシーケンスを維持し、番号を順番に割り当てます。
id, name, last_ref
1, 'Team 1', 1003
2, 'Team 2', 1001
3, 'Team 3', 2001
ストーリー レコードが挿入されるページは CRUD ですが、ロジックを CRUD、ページ、またはモデル自体に挿入する必要があるかどうかはわかりません。挿入にのみ影響を与える必要があり、おそらく addField('last_ref') の defaultValue にする必要があると思いましたが、これを関数にすることはできますか?関数はどこで定義する必要がありますか?
必須ではありませんが、last_ref をインクリメントすると、現在のチームのテーブルで既に使用されている参照をスキップする必要があります (CRUD 以外の方法で挿入された場合)。
前もって感謝します。