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

Can someone tell me how to code sets properly

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

    Can someone tell me how to code sets properly

    I have been playing about with sets for a long while but cannot get to a satisfying way of doing things.

    in a set called "Testing";

    I have a parent Table called "Logfile" and three child tables.

    Child 1 "Aircraft_Type" link is logfile->at_unique = Aircraft_type->unique
    Child 2 "Operator_details" link is logfile->op_unique = Operator_details->unique
    Child 3 "Base_Details" link is logfile->B_Unique = base_details->unique

    Child 2 is also a parent to Child3 with link operator_details->b_unique = base_details->unique. (This is needed as I only have the home base for a lot of entries and no owner/operator).

    I want to be able to update records in the Child tables and it be then shown in the parent table. For example if "American Airways" changed its name to "American Airways International" I want to just update the relevant entry in the Operator_details table and get the 800+ entries in the Logfile table to reflect this, rather than having to go through the 800+ records on logfile (Yes, American Airlines has 800+ aircraft!!).

    What is the best way to code this as the method I am using works but is not really the way to do it.

    see attached form, the three fields in violet font are the 3 uniques linked to the child tables and the fields in red font are the values called by the unique values. I want to find a way of making the 3 unique fields transparent in any changes that I have to do on the data.

    thanks in anticipation.
    --
    Support your local Search and Rescue Unit, Get Lost!

    www.westrowops.co.uk

    #2
    Originally posted by Graham Wickens
    I have been playing about with sets for a long while but cannot get to a satisfying way of doing things.

    in a set called "Testing";

    I have a parent Table called "Logfile" and three child tables.

    Child 1 "Aircraft_Type" link is logfile->at_unique = Aircraft_type->unique
    Child 2 "Operator_details" link is logfile->op_unique = Operator_details->unique
    Child 3 "Base_Details" link is logfile->B_Unique = base_details->unique

    Child 2 is also a parent to Child3 with link operator_details->b_unique = base_details->unique. (This is needed as I only have the home base for a lot of entries and no owner/operator).

    I want to be able to update records in the Child tables and it be then shown in the parent table. For example if "American Airways" changed its name to "American Airways International" I want to just update the relevant entry in the Operator_details table and get the 800+ entries in the Logfile table to reflect this, rather than having to go through the 800+ records on logfile (Yes, American Airlines has 800+ aircraft!!).

    What is the best way to code this as the method I am using works but is not really the way to do it.

    see attached form, the three fields in violet font are the 3 uniques linked to the child tables and the fields in red font are the values called by the unique values. I want to find a way of making the 3 unique fields transparent in any changes that I have to do on the data.

    thanks in anticipation.
    I'm certainly no expert on database normalization but if I understand the principles in any small degree, the process will solve your problem.

    If you don't store a piece of data in more than one place then you only need to change it in that one place. If your aricraft_type table held a manufacturer id in each aircraft record which linked to a manufacturer table and the table of manufacturers contained fields for details for each id such as name, address, etc. then you only need change the manufacturer name in the manufacturer table as opposed to in each aircraft record.
    There can be only one.

    Comment


      #3
      You get my Drift! :)

      but how do I make the unique values that link the data transparent to updating?
      --
      Support your local Search and Rescue Unit, Get Lost!

      www.westrowops.co.uk

      Comment


        #4
        Originally posted by Graham Wickens
        You get my Drift! :)

        but how do I make the unique values that link the data transparent to updating?
        Nothing gets updated with the normalization in place. The manufacturer name and other manufacturer specific details are removed from the aircraft_type table.

        If you want a report or other layout that lists/displays aircraft type and manufacturer you base the report on a set that includes both tables (aircraft_type as parent linked one to one to manufacturer). If you want a report that lists manufacturer and the aircraft types they make you base the report on an inverted version of the same set (manufacturer as parent linked one to many to aircraft_type).

        Normalizing the tables is quite the pain but the benefits are tremendous.
        There can be only one.

        Comment


          #5
          Sorry for being thick, but what do you mean by normalizing?
          --
          Support your local Search and Rescue Unit, Get Lost!

          www.westrowops.co.uk

          Comment


            #6
            Originally posted by Graham Wickens
            Sorry for being thick, but what do you mean by normalizing?
            One discussion here, but there are many others.
            There can be only one.

            Comment


              #7
              Thanks Stan,

              SOme bedtime reading ! :))
              --
              Support your local Search and Rescue Unit, Get Lost!

              www.westrowops.co.uk

              Comment


                #8
                OK I've read the article on Normalization. Most of my tables adhere to the rules. My sticking point is how to setup the tables so that I only need to update one occurence of the field B_Unique.
                I've come up with the following that might solve half the problem, but I am not quite sure how to code it:

                In "Logfile" table remove fields "op_unique" and "b_unique", add field "pointer" to point at intermediate table called "Pointer" which has fields "Pointer", "Op-Unique" & "B_unique".

                Pointer->pointer = logfile->pointer
                Pointer->b_unique = operator_detail->b_unique
                Pointer->op_unique = operator_detail->op_unique

                If I have to change Operator->b_unique, I code the lookup using Base_details but to actually update pointer->b_unique.

                This would only mean changing one field value [pointer->b_unique].

                This is where I am stumped.

                If I want to change logfile->pointer to change pointer->op_unique and/or pointer->B_unique [So that the current record in Logfile now points to a different operator_detail an/or base_details]

                How do I code it? I will obviously have to change existing "Pointer" table values and add values as updates take place.

                Also, If I only have information on the base_details for the current logfile record, how does that get done? [ie no op_unique value known].
                Last edited by Graham Wickens; 01-14-2006, 06:31 AM.
                --
                Support your local Search and Rescue Unit, Get Lost!

                www.westrowops.co.uk

                Comment


                  #9
                  I'm lost in your explanation of various linkages needed because I don't know your field and the terms are mysterious to me. Logfile, operator, b_unique etc are just so many words that I can't relate to an example.

                  Let's go back to the example of aircraft_type and manufacturer. Anything that you want to store that is dependent on the aircraft_type is stored in that table but only to the extent necessary. Aircraft specific details such as weight and wingspan would be stored in the aircraft_type table.

                  Obviously you want to be able to store information about the manufacturer for a particular type. If you want to store more than the manufacturer's name you should use a separate table, develop a manufacturer id system, code the existing entries in the aircraft_type table, remove the manufacturer name from the aircraft_type table, then build a manufacturer table with the ids and the pertinent information.

                  From this point on you only need to change the manufacturer's name in the manufacturer table to have it appear in its new form throughout the application.

                  You might perform the same exercise on the engines which propel the aircraft. Propeller or jet, number of cylinders if applicable, thrust, average rate of fuel consumption, etc are all characteristics of the engine, not the aircraft and should be stored accordingly.

                  I'm sorry I can't answer your question more directly but hope the principles are more clear.
                  There can be only one.

                  Comment


                    #10
                    Thanks Stan,

                    I'll now go and sit down and rationalise all my tables along those lines. If I get stuck I'll post another question.
                    --
                    Support your local Search and Rescue Unit, Get Lost!

                    www.westrowops.co.uk

                    Comment

                    Working...
                    X