Hello, me and a colleague are trying to make a database where we have a table called "students" and one called "subjects", meaning many students can take many subjects. We've been researching for a bit and the way explained in the Appian Documentation is the one explained here, it says create both the parents and child CDTs, then create a third table where you have: a primary key, a foreign key that corresponds to the first table, a foreign key that corresponds to the second table, and an index. The problem is that by doing so, you can add duplicates of each, meaning that the same student can be assigned to the same subject twice (this screenshot is the Intermediary record type):
(I made 3 record types, Subjects, Students and Intermediary). That's why I wanted to ask all of you for any suggestions so that this table does not take duplicates, or if there's anything that we are doing wrong. Thank you!
Discussion posts and replies are publicly visible
Two options:
1) Low-Level: Define a unique key on the two foreign key fields in the database. Trying to insert duplicates will fail which is not easy to manage in Appian.
2) High-Level: Implement a check in Appian to prevent a user adding an already existing combination. Simple to implement and great UX, but not 100%, as the check and the insert are delayed.
Thank you! We just managed another way. You can actually create a table with 2 different primary keys, you can do so on the Cloud Database, then writing the proper SQL. After that, you can create a CDT instead of a Record Type, and marking the option "create it from a database table or view". Doing so this way doesn't give you an error.
Again, thanks for taking your time and answering!
trhrth