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

Reply via email to