>>Hi,
>>
>>Say I want to create a Foreign key constraint on two fields (one char and one smallint). In the parent table (where the combination of these two fields is unique) I will have a unique index on Char_field + SmallInt_fld.
>>
>>Do I need to have an index in the Child table (where the Foreign key constraint will be set) on these two fields (Char_field + SmallInt_fld) or two index keys, one for each field?
>>
>>The foreign key constrain will look something like this:
>>
>>
>>ALTER TABLE [dbo].[child_table] WITH CHECK ADD CONSTRAINT [FK_child_somename]
>>FOREIGN KEY([char_fld], [smallint_fld])
>>REFERENCES [dbo].[parent_table] ([char_fld], [smallint_fld])
>>ON UPDATE CASCADE
>>
>>
>>TIA.
>
>It should be one index per both fields. I suggest to make integer field first key and char the second in the list of fields.
>This is assuming you always use both fields in join conditions and select filters.
First, thank you. But you just said something that I have not thought about. I will put this design on a future to-do since I don't have time to change all join conditions and select filters.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham