Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Primary, Foreign & Natural Keys

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Primary, Foreign & Natural Keys

    I have been reading about using key fields properly and rules for good database design. Problem is I am converting an old v4.5 app to v8 (via 5 & 7) and fear I have not stuck to my own rules. The idea was to have an autoincrement primary key and a user friendly natural key which could be edited if needed without corrupting any links in sets based on the primary. The natural key could then be used for lookups and such.

    Ex: Dircode - D0031 = Dir_ID - LORBER

    So I am guessing that the natural key should not exist in any of the other tables than the one in which it was originally designed - else when it is edited it will not find the right records if used for searching the other tables. So anywhere else I want to use the natural key, it will have to be provided by a calculation, assuming the primary key and foreign keys match. I use Record-List combo boxes quite a bit on my forms for searching and locating records so this should not be too hard.

    Ex: To find a Knit Order the user types in the known Cust P/O No. to find the unknown Knit Order No. If the Cust P/O No. is edited in the Knit Order, the record stays linked because the Knit Order No. never changes.

    What I have done however is added the natural key to the other tables and now need to undo this. I am thinking that I ought to go thru my forms & reports and where ever I have a natural key displayed that is not from the primary table, change it to a lookup() calculation before removing the field from the other tables.

    I was wondering if anyone has any suggestions that I might want to consider before I get into this project.

    My 2nd question is whether adding multiple foreign keys is a good idea or not. For example, I need to get a count from a table that otherwise does not need the Knit Order No. If I add it to this table then my data entry for those records gets more complicated, but getting this value is much easier. Is that a good basis for how to decide if it is worth doing?

    I'm trying to keep it simple but this app won't let me!

    Edit:
    Perhaps in those tables where I added the natural key I could change the field rule to make it a calculated field to lookup in the primary table so it is always current. Quickbooks does something like this because you can change what appears to be a primary key and have it cascade the change everywhere it appears. However the user is able to type in that value, which you cannot do in Alpha if the field has a calc field rule.

    Do I sound confused?
    Last edited by MoGrace; 05-10-2008, 10:19 PM.
    Robin

    Discernment is not needed in things that differ, but in those things that appear to be the same. - Miles Sanford

    #2
    Re: Primary, Foreign & Natural Keys

    Hi Robin,

    I hope I'm not off-target here.

    On question 1 -- I agree that your "Natural Key" should not be used in more than one table (unless just for historical viewing). But to do what you want I would think just having the primary key in other tables (as a foreign key) would suffice. I mean that is its purpose right?--to act as a link to records and if there is a need I see no reason why it cannot be in any number of tables if needed for this purpose.

    Question2 -- I have done it two ways...added the necessary linking key and also have denormalized the database by adding a single field simply, I guess, maybe due to laziness?? :)

    Just my take on it...
    Mike
    __________________________________________
    It is only when we forget all our learning that we begin to know.
    It's not what you look at that matters, it's what you see.
    Henry David Thoreau
    __________________________________________



    Comment


      #3
      Re: Primary, Foreign & Natural Keys

      Robin, I think you can simplify the complexities of maintaining duplicate natural keys in multiple tables if:

      a) you permit the natural key field to be edited in only one table; and
      b) you define a post field rule there which "replaces" the natural key field in the other tables.

      This assumes of course that you will be using the primary key to tell the field rule how to find the correct record to change in each of the other tables.

      Comment


        #4
        Re: Primary, Foreign & Natural Keys

        Originally posted by Tom Cone Jr View Post
        Robin, I think you can simplify the complexities of maintaining duplicate natural keys in multiple tables if:

        a) you permit the natural key field to be edited in only one table; and
        b) you define a post field rule there which "replaces" the natural key field in the other tables.

        This assumes of course that you will be using the primary key to tell the field rule how to find the correct record to change in each of the other tables.
        A post rule might just be the thing if the natural key is changed. I will look into how I might do that - thanks. The natural key is handy to have for viewing lists, I hate to have to get rid of it altogether.
        Robin

        Discernment is not needed in things that differ, but in those things that appear to be the same. - Miles Sanford

        Comment


          #5
          Re: Primary, Foreign & Natural Keys

          Well this might not be so bad afterall. I pulled up A5 Doc to see whereall I have these fields in use and out of 88 hits for DIR_ID, only about a dozen need to be changed. So hopefully the other 2 fields won't be any worse.
          Robin

          Discernment is not needed in things that differ, but in those things that appear to be the same. - Miles Sanford

          Comment


            #6
            Re: Primary, Foreign & Natural Keys

            Originally posted by MoGrace View Post
            I pulled up A5 Doc to see whereall I have these fields in use
            What is A5 Doc?
            Alpha Five v12.3, Build 2999

            Comment


              #7
              Re: Primary, Foreign & Natural Keys

              Originally posted by Mayapur View Post
              What is A5 Doc?
              A must-have utility that documents your application and enables, amongst other things, searching an entire app to find a particular string. This might be a table name, field name, form name or variable.

              Garry Flanigan

              Comment


                #8
                Re: Primary, Foreign & Natural Keys

                Originally posted by Garry Flanigan View Post
                A must-have utility that documents your application and enables, amongst other things, searching an entire app to find a particular string. This might be a table name, field name, form name or variable.

                Garry Flanigan

                Thank you. Where is it?
                Alpha Five v12.3, Build 2999

                Comment


                  #9
                  Re: Primary, Foreign & Natural Keys

                  (removed broken link)

                  at bottom of page

                  Garry
                  Last edited by Lenny Forziati; 06-02-2023, 02:35 PM. Reason: removed broken link

                  Comment

                  Working...
                  X