I have been a bit puzzled about how to do things efficiently and elegantly when one needs a value list/lookup table to ensure data integrity. To illustrate, let's say you have a field which indicates "OrderStatus" and can have the labels "Ordered", Shipped", "Received" (a bit arbitrary and simplified for the sake of illustration).

First, good normalization rules would require that the order status labels are stored in their own table with a primary key (e.g. a serial number), and that the Orders table, which must store an order status for each order, would use a foreign key consisting of the serial number of the relevant OrderStatus label.

This method has two advantages: 1) it saves space because each order record stores only a number instead of a whole word; 2) if one wants to modify one of the labels (let's say you want to rename "Received" to "Acknowledged", or you spelt the label wrong in the first place), you just change it once in the lookup table.

So far so good, but I am battling with the implementation in Filemaker (I started with FMPA 8.5 and have now upgraded to FMPA 11): the value lists don't make it so easy to display the data in an elegant way. Either you create a value list which shows both the key field and the label, and you get the order correct, or you choose to display only the label but then you are forced to use alphabetical order for the display of the labels. To use another example, if the labels are months, you must either display "1 January", "2 February", etc., or you must display "April", "August", "December", etc., which hardly communicates a sense of orderliness and control. To make things worse, the pop-up field control displays the list very differently from the drop-down control. (And while I am on the subject, why is it impossible to specify your own choice of field borders for a pop-up - you either have nothing or you must have FMP's shadow borders?)

I just can't figure out how to solve this in an elegant way. I cannot believe that the answer is to just make a value list of labels alone - that is too contrary to the rules of database normalization, is too wasteful of space and creates too much risk of compromising the integrity of the data.

Can anyone help me to understand the best way to handle this issue in Filemaker? Maybe I am missing something obvious!

(P.S. I was very happy to move from MS Access to FMP, but this is one thing that Access handled really easily.)

Thanks in advance
Bruce Button

Reply via email to