Aside from the business rules questions raised by Salad, the kind of table
you describe is normal for a many to many relationship... but it does not,
of course, define the job for which that relationship applies.
Yes, a many-to-many can join records in the same table.
You'll probably want to include some validation that you don't have the same
contractor ID in both fields (unless you have a business rule that says a
contractor can subcontract to themselves). And, if it is correct that a
prime is always and only a prime, and a sub is always and only a sub, then
you'd want validation of that against the type, as well.
In programming/development contract work, the roles do often switch. In
construction, there is a more defined line between a "general" contractor
and a subcontractor... sometimes limited by the license that each has.
Larry Linson
Microsoft Access MVP
"Bill George" <Wo*******@frontiernet.net> wrote in message
news:BC3814A2.787B%Wo*******@frontiernet.net...
If I have a table of contractors with this layout:
ID
Name
Address
Type
And type can be Prime or Subcontractor, does it violate normalization
principles to define a table to represent a teaming relationship between a
Prime and various Subs like this:
Prime-ID
Sub-ID
Where Prime-ID is a foreign key to the primary key, ID of the contractor
table?
TIA.