Is that reasonable? Have we forgotten a use case or two?
Gary
Peace,
Ryan Price
DrupalEasy.com
rpr...@ryanpricemedia.com
@liberatr
407-484-8528
> --
> Visit: http://athena.fracturedatlas.org/tix
> Fork: http://github.com/fracturedatlas
> Chat: ##athena on Freenode
>
> You received this email because you are subscribed to the "ATHENA
> Tix Developers" group on Google Groups.
>
> To post, email: athena-t...@googlegroups.com
> To unsubscribe, email: athena-tix-dev...@googlegroups.com
> For more, visit: http://groups.google.com/group/athena-tix-devel?hl=en
You'll need it for reconciliation reporting as well.
> --
> Visit: http://athena.fracturedatlas.org/tix
> Fork: http://github.com/fracturedatlas
> Chat: ##athena on Freenode
>
> You received this email because you are subscribed to the "ATHENA Tix Developers" group on Google Groups.
>
> To post, email: athena-t...@googlegroups.com
> To unsubscribe, email: athena-tix-dev...@googlegroups.com
> For more, visit: http://groups.google.com/group/athena-tix-devel?hl=en
>
--
Tim Thomas
Founder/Lead Developer
BuyPlayTix.com
In general, though, I like to err on the side of storing more rather than less. I've had a dozen or more experiences over the years where an unanticipated use case required major refactoring because I wasn't storing enough data.
The obvious exception would be something like a complete credit card number, because of the security risks. Beyond that, there's very little downside to storing more rather than less.
In general I agree with Adam that more data is better. However, our
intention isn't to use Payments as a source for any kind of reporting (to
Ryan's point).
We currently have five top level data sources (or core components, as we
call them): Tix, Orders, People, Actions, Notes. We believe that
more-or-less any conceivable report can be run off of these.
/Tix: Tickets
/Orders: Orders to Buy Things (generally tickets) or Make Donations.
/People: People making Orders and using Tickets (and people we'd like to
someday make Orders and use Tickets).
/Actions: Things people have done ("Joe bought a ticket", "Tim called Ryan
to solicit a donation")
/Notes: Our catch-all that lets us associate arbitrary information with
anything (and full-text search it).
In a theoretical implementation, reports around the "under 30" outreach
campaign would be pulled from a combination of People, Actions and Orders.
(Note, query strings are _totally_ speculative.)
Report 1: From People - Potential Patrons under 30
... /People/?age<30
Report 2: From Actions - Potential Patrons under 30 we included in the
"under 30" email blast.
... /Actions/?campaign="Under 30 2010"&communication="eblast"
Report 3: From Orders - Potential Patrons under 30 who bought tickets
during a period.
... /Orders/?campaign="Under 30
2010"&purchase_date>"1/1/2010"&purchase_date<"12/31/2010"
Or, if we implement this in a helper component - say something called
CampaignReportHelper - we could do something like:
... /CampaignReportHelper/?campaign="Under 30 2010"&report="purchases"
Justin