Well I never!
Thomas McGrath III
mcgrath3 at mac.com
Sat Mar 28 23:31:23 EDT 2009
Jim, Absolutely love this. Thanks.....
Tom McGrath III
Lazy River Software
3mcgrath at comcast.net
iTunes Library Suite - libITS
Information and download can be found on this page:
http://www.lazyriversoftware.com/RevOne.html
On Mar 28, 2009, at 12:09 PM, Jim Ault wrote:
>
>
> On Mar 28, 2009, at 7:15 AM, Thomas McGrath III wrote:
>> OK, Jim so now we all know that you can get really cheap bottles of
>> asprin.
>>
>> Great concept to explain multi-dimensional array's. And this works
>> great for individual 'different' types of objects. I would like to
>> see an explanation of similar objects:
>> Let's say you have a collection of baseball cards. You may have a
>> lot of duplicates and you may have missing cards that you want to
>> list. They all share similar attributes like price, stats.
>>
>>
>> collectibles[baseballcards] ....
>>
>
> The short answer is that you would program the location rules for
> all the data and let your loops and handlers to the detail work.
> One example is "How many all star first basemen do I have/need/want?"
>
> A longer answer to your question: the single concept would be
> 'fingerprint', or in database terminology, 'ID', such as primary ID
> that is always unique and automatically assigned. Without a unique
> ID in a table, a database cannot build linking tables that do the
> chores of lookups and record sets.
>
> Since the Rev arrays do this by the rule that keys must be unique
> and less than 255 characters (the Rev limit might now be different
> than this), you have a wide range of ID choices. The actual system
> you devise is up to you and can be different on each level of keys.
>
> Think of an array as a table on an Excel spreadsheet, with the rule
> that column 1 can only contain unique values (this is like a Rev
> key). At this point, column 2 on row 11 could contain any string
>
> The sheet name would be 'collection', each row would be the same as
> the smallest level you would want to track in your system, or schema.
>
> Example:
> [Rocky Colivito-Cleveland-RookieYear-MintCondition-$1465value -
> $0.10purchasePriceIncludingBubbleGum] "in green shoe box"
> ----a very long key, but unique
> collection[person][player][team][year][at bat][rbi][position]
> collection[person][coach]
> collection[team]
> collection[special][world series][2001]
> ----- oops, this won't work too well since there are many
> collections with 66 Rocky Colivito's
> Back to the unique ID number or string that would be assigned to any
> entry in the table as column 1 of the spreadsheet.
>
> The 'granularity' of the array keys (tables) has to be determined by
> the programmer since this is the basis for any data storage and
> retrieval. You could assign a bar code to every card, if you only
> collected cards, but then you would have to consider commemorative
> packs, and other oddities, like Barry Bonds before and after
> confession, McGwire before and after confession, etc. You know, the
> double-triple-fourple asterisk ratings of the future. You would
> need to keep track of the number of years of enhancers, as well as
> the year started, and when he says he quit.
>
> Another wrinkle would be the trading to different teams in the off-
> season and mid-season.
>
> One of the real questions any database programmer would need to ask
> is "what do I want to do with the data?" If it is very fast
> reporting in a simple setup so you don't have to do a lot of
> programming, or very fast-yet easy to maintain and expand and no
> need to print any reports.
>
> The bottom line is the schema and the intended use of the database.
> Most databases handle the complexities of collections by using
> (unique keys or IDs) plus relationships plus indexes. An index is a
> table that lists ID's so that groups are faster to report, but
> require creation and maintenance by the database programming logic.
>
> In Rev, I would build the multidimensional arrays and apply the
> rules on the back-end, using filter commands.
>
> Example:
> if collection["person"] is empty --nobody in there yet
>
> put the keys of collection["person"] into tempList
> filter tempList with "John*" --exact match required
> if tempList is empty then -- nobody in there named John-something
>
> With an associative array, like Rev's, you probably will run the
> danger of duplicate and scattered data. Legal and accurate, but it
> soon gets unwieldy and you would store all of your shoeboxes in the
> bedroom in the closet next to a very big bottle of cheap asprin.
>
> The short answer is that you would program the location rules for
> all the data and let your loops and handlers to the detail work.
> One example is "How many all star first basemen do I have/need/
> want?" "Do I want to store the scanned image or just the path and
> filename in the database?"
>
> If your goal is to display the data like they do on CSI Miami on a
> heads-up holographic voice activated display that takes exceedingly
> private information and shows it to anyone walking by, then you have
> to go with a fake database. Much more fun and great at parties. Of
> course that would add another key ["soundtrack"]
>
> I hope this gives you a little insight into my limited knowledge of
> databases. The only database I have done that is really good and
> that I am proud of is my office. Ever-changing and carefully
> disorganized.
>
> Jim Ault
> Las Vegas
>
>
>
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
More information about the use-livecode
mailing list