I use a somewhat different philosophy than James when it comes to history. I tend to use an effective date structure and look up records based on the latest, i.e. current, date. Either system works, but I prefer to maintain a single table. With the indexing that R:Base now has, retrieval time is not significant. A single table view allows lookups based on only the most current date with all other records still available for review when needed. If the person is no longer with the organization, an inactive switch in the master record will allow you to keep them off selection lists for current needs.

In a Customers table, for example, I would keep only the basic minimum records and include a column CustActive TEXT (1) DEFAULT 'T'. Lookups for new shipments and invoices would not see any customer where the CustActive = 'F'.

Pick and choose. We all have our own ideas on how to handle this sort of thing, and only you know which is the most comfortable method for you to use.

Albert

On 22/02/2012 8:52 AM, James Bentley wrote:
Bill,

For you address lookup needs checkout products from http://www.melissadata.com/. Bill I am not privy to you current database structure but here are a few suggestions to consider. It seem there will be many segments to you Patients, vendors, Schedule master etc. For Patients the key should be an unique patient identifier. This will be the link to all subordinate tables There would be one PatientMaster with such items as PaitentId, PaitentFirstName, PaitentLastName etc.
There could be subordinate tables
PaitentCurAddress
PaitentInsurance
PaitentCurPhone
PaitentPrvAddress
PaitentTreatmentHistory
various other patient info tables.
All linked by the PaitentId

Since you might be treating multiple patients with the same address and might want to create a freestanding
address file with a structure some what like this:

PatientMaster -- PaitientId
PaitentJoinAddress-- PaitentId,AddressId
Addressmaster -- AddressId

I believe at some point maintaining such a structure could become unwieldy. Patients Move, Some Patients cease being a patient, post office changes mailing information etc
You may need to have address history for various regulatory reasons
The number of information records grow over time as you collect say address changes or patient visit records. Most of the time you query and report current information. With inquiry into historical records. To speed processing and simplify query statements I recommend keeping current information segregated from historical information coupled with developing a stored procedure to initiate transfer between current and history tables.

In the early versions for the Society database I did not maintain an address history table. Also, if a member became "lost" or "died" certain basic information was dropped from the database and certain details sored in non-database text files.When we started recording contribution and dues information we juped through hoops to keed a linke betwee the contribution record and the contributor information. This would be akin to you patient basic information and transaction information such as patent visits, diagnosis information, billing information. Now we flag those events and for example transfer address information to an address history table. Other information such as contributions remain in
a single table.

Jim Bentley
American Celiac Society
[email protected]
tel: 1-504-737-3293

    ------------------------------------------------------------------------
    *From:* William Stacy <[email protected]>
    *To:* RBASE-L Mailing List <[email protected]>
    *Sent:* Wednesday, February 22, 2012 8:48 AM
    *Subject:* [RBASE-L] - Re: Too relational?

    I'm leaning toward a construct where there is a permanent address
    table, as usual keyed by an autonum column that should rarely need
    changing at all (as in an eminent domain condemnation or some
    such), a second table which contains that autonum column along
    with a person/company link and two date columns, dtin and dtout so
    that historical records are preserved.  The same thing should work
    well with telephone numbers which of course should also rarely
    need editing themselves; only the linking tables need frequent
    changes.  As for spiderwebs and terabytes, I'm pretty sure that
    going more and more relational actually ends up saving bandwidth
    over flat files.  And there is something beautiful about
    spiderwebs.   Finally, I'd love to put every address within 20
    miles in my database so people could actually pick their (properly
    formatted) addresses by entering a few numbers and a couple of
    letters without having to type and retype it with all the errors,
    etc. Maybe the post office has it for downloading,  or mapquest???....

    On Wed, Feb 22, 2012 at 5:33 AM, <[email protected]
    <mailto:[email protected]>> wrote:

        Further to what Albert suggested:  One app that I wrote relied
        heavily
        on people spending time at 2 different homes.  The address
        table was
        separate, with a text column (free-form) that indicated the
        "type" of
        address it was (winter, summer, school, mother).

        You'd go into their record and select a "current" address and
        enter
        an "until date" if you knew one.  That record would be marked
        with an "X"
        for being current.  Obviously when you enter a new person the
        first
        address is marked with an "X".

        At the first startup of the day, it would look at "until date"
        <= today and
        send a list to the printer so the users would know they should
        either
        select another address to be current or change/erase the date.

        Karen


        In a message dated 2/21/2012 10:52:01 PM Central Standard
        Time, [email protected] <mailto:[email protected]>
        writes:
        Yep, I would have a Persons master table, a PersonStatus
        table and a
        PersonAddress table containing address(es) with a switch to
        indicate
        Active or Inactive status, and follow that along. If a person
        lives in
        Hawaii for the winter and in British Columbia in the summer,
        both
        addresses would be in the PersonAddresses table with one only
        allowed to
        be active at any given time. Saves a lot of keying. You could
        go as far
        as PersonPhones if you really need to, adding a phonetype
        column to
        indicate cell, land, satellite, fax ...

        Albert




-- William Stacy, O.D.

    Please visit my website by clicking on :

    http://www.folsomeye.net







Reply via email to