rkc <rkc@rochester.yabba.dabba.do.rr.bomb> wrote in
news:oxaWd.50206$vK5.44100@twister.nyroc.rr.com:
[color=blue]
> David W. Fenton wrote:[color=green]
>> rkc <rkc@rochester.yabba.dabba.do.rr.bomb> wrote in
>> news:AQPVd.68287$H05.24636@twister.nyroc.rr.com:
>>
>>[color=darkred]
>>>David W. Fenton wrote:
>>>
>>>
>>>>Then it occurs to me that if I'm going to structure it this way,
>>>>maybe I should just collapse tblPersonOutreach and
>>>>tblContribution into a single table. It means that there won't
>>>>be a proper 1:N relationship between the Outreach action and the
>>>>contributions it generates, but, well, given that the vast
>>>>majority of these outreach actions will generate only one
>>>>contribution per action, and given that there's very little data
>>>>in the join table, I'm not sure I see any real benefit from
>>>>maintaining the strictly correct normalized structure.
>>>
>>>I'd have to assume, because you don't say, that there must be
>>>some other info in tblPersonOutreach that would be duplicated in
>>>tblContribution if you did combine them. Otherwise there is no
>>>point to tblPersonOutreach in the first place.[/color]
>>
>>
>> Presently, the only data I have in tblPersonOutreach (other than
>> the two keys) is the date of creation of the record and who
>> created it. I'm not sure if that information serves any purpose
>> at all independent of the other information. Once a contribution
>> is received, does it really matter when the PersonOutreach record
>> was created (most of them will be created in an automated fashion
>> when the app is finished, anyway, as the result of data exports
>> or mail merges).[/color]
>
> I see Person(contributor) in a many to many relationship with
> Outreach(contributed to) joined by Contribution.
>
> Unless PersonOutreach serves a purpose that can't be served by
> Contribution.[/color]
Well, I'm not going to be able to resolve it until I talk with the
client. It depends on what data they want to store.
Say, for example, they hold a fundraising event, but they send out
snail mail invites to some people and email invites to others. Where
should I store that information? It belongs in PersonOutreach.
Now, the client may not care whether a person was sent an email or
an actual letter. If they don't, then I don't have to worry about
it.
Or, if they do, I may need to structure Outreach differently, so
that an event can have multiple types of contact with the donors.
I'm leaning towards just implementing it without collapsing the two
tables, but basically, the question comes down to:
What's the cost of the extra join?
If the cost is not high, then I can implement it that way and the
user will never know, since I'll only ever present data in the
flattened view (which would be the case even when I need the extra
table).
--
David W. Fenton
http://www.bway.net/~dfenton
dfenton at bway dot net
http://www.bway.net/~dfassoc