Certaines relations de type ‘one-nofk’ et ‘many’ possèdent un nom de clé étrangère
J'ai observé des choses douteuses dans certaines relations des éléments <entity>
en effet il existe trois types de relations one, many et one-nofk. Les relations de type one sont utilisées pour créer des contraintes de clés étrangères en base de données, et les relations de types many et one-nofk sont des annotations du modèle.
L'attibut fk-name
permet de définir le nom effectif de la contrainte comme montré dans l'exemple
<relation type="one" fk-name="ADDNDM_AGRMNT_ITM" rel-entity-name="AgreementItem">
<key-map field-name="agreementId"/>
<key-map field-name="agreementItemSeqId"/>
</relation>
Vu que seul les relations de type one définissent une clé étrangère il semble que l'attribut fk-name
ne devrait être présent que sur les relations de ce type. Dans le framework
et applications
j'ai noté la présentce d'attribut fk-name
sur des relations d'un type many ou one-nofk. Voici la liste des noms des clés étrangères concernées:
- "SHP_RCPT_SHIPMT"
- "SHP_RCPT_SHIPIT"
- "UP_USER_LOGIN"
- "CSCR_TYPE_CHILD"
- "PARTY_RSME_CNT"
- "PERF_REV_PSTN"
- "PERF_REV_MPTRL"
- "PERF_RVITM_PRTTP"
- "PERF_RVITM_PRITTP"
- "EMPLMNT_AGR"
- "EMPLMNT_TNRN"
- "EMPLMNT_TNTP"
- "EMPLMNT_APP_POS"
- "EMPLMNT_APP_RBPTY"
- "EMPLMNT_APP_EAST"
- "EMPLMNT_APP_STTS"
- "EMPLMNT_APP_APTY"
- "PTY_BNFT_PRDTYP"
- "PAY_HIST_SSTP"
- "PRL_PREF_PMTP"
- "PRL_PREF_PDTP"
- "PRL_PREF_DNTP"
- "UNMPL_CLM_EMPLMNT"
- "UNMPL_CLM_STTS"
- "EMPL_POS_BGTITM"
- "EMPL_POS_EPSTP"
- "EMPL_PTPRT_SSTP"
- "EMPL_PTPRT_RTTYP"
- "INVCE_ITM_CINVIT"
- "ORDER_ADJ_OA"
- "ORDER_ADJBLNG_INV"
- "ORDER_ITEM_SLI"
- "ORDER_ITBLNG_INV"
- "CUST_PTY_RELAT"
- "RTN_ITEM_OISGIR"
- "RITBL_INVOICE"
- "SHLIST_PSSM"
- "ALC_PLN_HDR_PRO"
- "ALC_PLN_ITM_PRO"
- "ORIG_USER_LH_USER"
- "FACILITY_TEC_CAL"
- "SRVYQST_ENUM"
Pour éviter de donner la fausse impression qu'il y a effectivement une clé étrangère en base de données, je dirai que ce serait une bonne chose de les supprimer. Idéalement il faudrait adapter le schéma XML mais c'est un peu plus de travail.