-- Logical game-alias join guidance for Select AI. -- -- COMN_GAME_ALIAS_BAS intentionally has multiple alias rows per GAME_ID, so -- GAME_ID cannot be modelled as a physical foreign key to that table. These -- annotations describe the safe semantic relationship without asserting a -- false database constraint or creating fan-out aggregation errors. DECLARE v_result VARCHAR2(4000); BEGIN v_result := sgmp_set_annotation( 'SGMP_POC', 'TABLE', 'COMN_SALES_TXN', NULL, 'Logical game filter: COMN_SALES_TXN.GAME_ID is resolved through COMN_GAME_ALIAS_BAS. GAME_ID is not unique in the alias table because one game can have multiple aliases. For a game-name filter, use EXISTS against active aliases or join a DISTINCT GAME_ID alias subquery. Do not directly join all alias rows before SUM or COUNT because that can multiply fact rows.', 'GAME_ALIAS_JOIN' ); dbms_output.put_line(v_result); END; / DECLARE v_result VARCHAR2(4000); BEGIN v_result := sgmp_set_annotation( 'SGMP_POC', 'TABLE', 'COMN_REFUND_TXN', NULL, 'Logical game filter: COMN_REFUND_TXN.GAME_ID is resolved through COMN_GAME_ALIAS_BAS. GAME_ID is not unique in the alias table because one game can have multiple aliases. For a game-name filter, use EXISTS against active aliases or join a DISTINCT GAME_ID alias subquery. Do not directly join all alias rows before SUM or COUNT because that can multiply fact rows.', 'GAME_ALIAS_JOIN' ); dbms_output.put_line(v_result); END; / DECLARE v_result VARCHAR2(4000); BEGIN v_result := sgmp_set_annotation( 'SGMP_POC', 'TABLE', 'COMN_SALES_PRODUCT_DISP_BAS', NULL, 'Logical product scope: COMN_SALES_PRODUCT_DISP_BAS is keyed by GAME_ID and PRODUCT_ID. Resolve a natural-language game through COMN_GAME_ALIAS_BAS using EXISTS or a DISTINCT GAME_ID alias subquery before joining product data to transaction facts. The alias table has multiple aliases per GAME_ID and is not a physical foreign-key parent.', 'GAME_ALIAS_JOIN' ); dbms_output.put_line(v_result); END; /