Re: Restrictions for a specific situation in my DB
От | David G. Johnston |
---|---|
Тема | Re: Restrictions for a specific situation in my DB |
Дата | |
Msg-id | CAKFQuwaw=yFb7FauOH=6cw4USmb-o7Z6vGQwr10qUrDgRU6NVA@mail.gmail.com обсуждение исходный текст |
Ответ на | Restrictions for a specific situation in my DB (JORGE MALDONADO <jorgemal1960@gmail.com>) |
Список | pgsql-novice |
On Mon, May 11, 2020 at 3:33 PM JORGE MALDONADO <jorgemal1960@gmail.com> wrote:
Hi,I have a table with the following structure:------------------------------------------------------------------------------FIELD TYPE COMMENTS------------------------------------------------------------------------------id serial primary keym1 integer id of record in another tablem2 integer id of record in another tableSo, "m1" and "m2" are foreign keys.I have read that it is a good practice to define an index for each foreign key so "m1" and "m2" are also regular and independent indexes.Now, the combination of "m1" and "m2" together cannot be duplicated. So for example, the following entries---------------------------------------------------------------------id m1 m2 COMMENTS---------------------------------------------------------------------1 2 102 8 33 18 14 2 10 This is invalid.5 13 8 This is invalid.6 18 18 This is invalid.
Its nice you provided examples but I'm pretty sure you have one (maybe two) typos - one in row 2 (m2) and one in row 3 (m2)...otherwise your stated rule and the data don't agree.
Maybe the case for records 4 and 5 can be achieved by setting 2 restrictions:Restriction 1: "m1 + m2" fieldsRestriction 2: "m2 + m1" fieldsBut, is this a good approach?
Sure, two separate multi-column unique indexes and a row constraint that m1 != m2 would work. Whether its "good" depends greatly on how the model/data is going to be used.
David J.
В списке pgsql-novice по дате отправления: