This conversation has been locked due to inactivity. Please create a new post.
This conversation has been locked due to inactivity. Please create a new post.
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.
Solved! Go to Solution.
Views
Replies
Total Likes
@Milan_VuceticHi, after i created the tables...below was what got created:
Parent - pl_:test1
<element label="test2" name="test2-test_link" revLink="test_link" target="pl_:test2"
type="link" unbound="true">
<join xpath-dst="@col2" xpath-src="@col1"/>
</element>
Child - pl_:test2
<element label="test_link" name="test_link" revLink="test2-test_link"
target="pl_:test1" type="link">
<join xpath-dst="@col1" xpath-src="@col2"/>
</element>
I believe this was 1-1 cardinality which is created by default? Even so, i was able to insert a record in child table (test2), which didn't exist in parent table(test1). hence, my doubts.
If it's possible, can you give me an example of how you'd define a link of cardinality 1-N.
Thank you
Views
Replies
Total Likes
Views
Replies
Total Likes
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:
Regards,
Milan
Views
Replies
Total Likes
Hi,
Relationships defined in ACC are used only by ACC software, not the RDBMS software.
Thanks,
-Jon
Views
Replies
Total Likes
@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.
Views
Replies
Total Likes
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies
Views
Likes
Replies
Views
Likes
Replies