I spent a while wrestling this out with my brother Jacob today. There are situations where one would need to know more than just repository-id and source-id. For instance, if a particular repository had more than one copy of source and you wanted to indicate which one you had searched, repository-id and source-id are not sufficient - you would also need to know the call-number. But the call-number itself is not unique so can't be used as the primary key in repository-source. Using activity-id as the third key doesn't seem to work though, because of the extreme redundancy I pointed out. I think repository-source needs an id field as a primary key, then search can reference that repository-source-id instead of having repository-id and source-id, and we take activity-id out of repository-source.
Jacob also helped me see the light on these associative tables (like repository-source and source-group-source). While I understood their importance in a database context, I was tempted to collapse them a bit in xml context. While that's possible to do while still keeping data integrity, it is better to keep it separate. As always, I welcome your feedback... <hans/> * Stan Mitchell [Tue, 9 Jul 2002 at 23:12 -0700] <quote> > Yes, it does seem that your suggestion reduces redundancy > without sacrificing search capability. > > Hans Fugal wrote: > > >But then you have to store call-numbers possibly many times. For > >example, a professional researcher would doubtless perform many searches > >in any particular US Census. For that Census the repository, source, call > >number and description would all be the same for every repository-source > >record. The only unique information in each record would be the > >activity-id. Yet if we take out the activity-id from repository-source > >we get rid of that redundancy. AFAICS there is no loss of querying power > >when we do so - search has all three keys, so if you want to know which > >searches you did on a particular call-number, you only have to query the > >search table with the repository-id and source-id. Or am I still > >missing something? > > > > > > > _______________________________________________ > gdmxml mailing list > [EMAIL PROTECTED] > http://fugal.net/cgi-bin/mailman/listinfo/gdmxml </quote> -- "Everybody is talking about the weather but nobody does anything about it." -- Mark Twain _______________________________________________ gdmxml mailing list [EMAIL PROTECTED] http://fugal.net/cgi-bin/mailman/listinfo/gdmxml