Code:
So in your terminology, is a site a location/area or a specific point at which a sample is taken such that the site name= sample name?
Yes, exactly. I see now what you mean for a sample name field. In your terms, for this db there is only one site, a lake and its watershed. Within that location there are several sample names.
Because there will always be only one site, the lake and its watershed, I might remove the SampleName Field and place the sample time in tblSampleEventsSites. I think this will be best because for any given dteSample there will not be a duplicate txtSiteName, and for each pkSampleEventSiteID there will be only one tmeSample. This should reduce the database you proposed by one table. The db I'm thinking of would look like: (sorry if this is getting confusing, I can barely follow it myself!)
tblSamplingEvents
-pkSamplingEventID relates to tblSampleEventSites
-dteSample
tblSites
-pkSiteID relates to tblSampleEventSites
-txtSiteName
tblSampleEventSite
-pkSampleEventSiteID relates to tblSampleAnalyte
-fkSampleEventID
-fkSiteID
-tmeSample
tblSampleAnalyte
-pkSampleAnalyteID
-fkSampleEventSiteID
-fkAnalyteID
-Result
tblAnalyte
-pkAnalyteID relates to tblAnalyte
-txtAnalteName
-ftMethodID
I see that tblSampleAnalyte,our join table, facilitates a many to many relationship with each unique entry containing one result, this is cool. Does the removal of tblSample (and moving the tmeSample) make good sense given light to there not being a difference between sites and samples for this project?