Primary Foreign relation in ACM | Community
Skip to main content
Level 2
August 10, 2020
Solved

Primary Foreign relation in ACM

  • August 10, 2020
  • 2 replies
  • 2218 views

Hi Experts,

 

If I understand correctly, if we declare a key in adobe data schema, it creates an unique index with not null constraint enforced in the backend table (not exactly an Oracle primary key).

I'm trying to implement Primary-Foreign key relation in ACM. I've declared a link between the tables (code below).
However, it doesn't enforce this in backend database (parent-child validations don't take place).
Sample code below:

Scenario: Parent table (test1) & child table (test2). Sample below:

test1: <element label="test1" name="test1"> <key internal="true" name="PKEY_t1"> <keyfield xpath="@col1"/> </key> <attribute label="col1" name="col1" type="long"/> <attribute label="col2" name="col2" type="string"/> <attribute label="col3" name="col3" type="string"/> </element>

 

 

test2: <element label="test2" name="test2"> <key internal="true" name="PKEY_t2"> <keyfield xpath="@col1"/> </key> <attribute label="col1" name="col1" type="long"/> <attribute label="col2" name="col2" type="long"/> <attribute label="col3" name="col3" type="string"/> <element label="test_link" name="test_link" target="pl_:test1" type="link"> <join xpath-dst="@col1" xpath-src="@col2"/> </element> </element>

 

Please suggest.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Milan_Vucetic

Hi @abhiseks1679239

define cardinality in the link according to your use case. 

Find the Links: relation between tables section here: link

Regards,

Milan

 

2 replies

Milan_Vucetic
Milan_VuceticAccepted solution
Level 9
August 11, 2020

Hi @abhiseks1679239

define cardinality in the link according to your use case. 

Find the Links: relation between tables section here: link

Regards,

Milan

 

Milan_Vucetic
Level 9
August 27, 2020

Hi @abhiseks1679239,
cardinality 1-N is created by default always. In order to create 1-1 relation add the following: revCardinality="single"

If you want to create ref. integrity consider this:

 

integrity (optional): referential integrity of the occurrence of the source table to the occurrence of the target table. Possible values are as follows:
  • define : it is possible to delete the source occurrence if it is no longer referenced by a target occurrence,
  • normal : deleting the source occurrence initializes the keys of the link to the target occurrence (default mode), this type of integrity initializes all foreign keys,
  • own : deleting the source occurrence leads to the deletion of the target occurrence,
  • owncopy : the same as own (in case of deletion) or duplicates the occurrences (in case of duplication),
  • neutral : does nothing.

Regards,

Milan

 

Jonathon_wodnicki
Community Advisor
Community Advisor
August 12, 2020

Hi,

 

Relationships defined in ACC are used only by ACC software, not the RDBMS software.

 

Thanks,

-Jon

Level 2
August 12, 2020

@jonathon_wodnicki So you mean even if we create a link in adobe campaign, it still won't create a Primary key - Foreign key in backend database?

I'm using Oracle as backend db.