Chris, I'd opt for the first, but with an index on each of
association_id1 and association_id2.
I like always having an identity column to be able to remove or update
an individual entry easily. But for speed, you'll want indexes on the
other columns.
I would either do no multi-column indexes,
Unless I completely misunderstand your question, I don't see how the id
field would ever be of use. You said you aren't going to be selecting on
id, only by one or the other of association_id1 or association_id2. If you
are really worried about the importance of inserts / updates / deletes, and