GeneXusは1トランザクション(下位レベルなし)=1テーブルと理解していたのですが、必ずしもそうではありません。
複数のトランザクションで、1つのテーブルを管理するような構造も実現可能です。
トランザクションの構造
以下のような3つのトランザクションを作成したとします。
Personトランザクション
1 2 3 4 5 6 |
Person { PersonId* PersonName PersonAddress ] |
Studentトランザクション
1 2 3 4 5 6 7 |
Student { PersonId* PersonName PersonAddress StudentClassroom ] |
Teacherトランザクション
1 2 3 4 5 6 7 |
Teacher { PersonId* PersonName PersonAddress TeacherSalary } |
生成されたテーブルの構造
テーブルオブジェクトを確認すると、Personテーブルオブジェクトのみ作成されました。
StudentトランザクションやTeacherトランザクションにしか存在しない項目属性も、Personテーブルの1項目として生成されています。
このことからGeneXusはトランザクション毎にテーブルを生成するという仕組みではなく、主キーの項目属性を基準にしてテーブルの生成を判断しているということがわかります。
GeneXusではこのようなトランザクションを、「並行トランザクション」と呼ぶようです。
GeneXus Wiki – 並行トランザクション
http://wiki.genexus.jp/hwiki.aspx?並行トランザクション,
並行トランザクションの活用方法として、上記のように類似のデータ構造だが画面を別にする場合やログイン権限に応じた画面の作成する場合などがあります。