April 1, 200520 yr Hi gang, My app uses PHP as middleware and FM7 for the backend. My data model uses key field IDs to define relationships between tables. Here's an example of records across two tables, Names & Phones: NameID 1 John Smith :: PhoneID 1, 555.1212 NameID 1 John Smith :: PhoneID 2, 555.3434 NameID 2 Jane Doe :: PhoneID 3, 555.5656 NameID 3 Bob Jones :: PhoneID 4, 555.7878 NameID 4 Bob Jones :: PhoneID 5, 555.9090 For web publication, it is not necessary to define this relationship in FM7. I simply have a primary key, Names:NameID and a corresponding Phones:NameID. Then, using PHP, I can simply grab the NameID in one FX instance from the Names table and use it to find related phone numbers in a second FX instance from the Phones table. My app is 100% utilized via the web. All my FM7 layouts are already stripped of any GUI for performance - they simply have fields and labels in the default position. I'm thinking performance might be further boosted if I don't define relationships in FM7, plus it speeds up development. Do you see a reason to define these relationships in FM7? I can see the possibility of a DBA threatening data integrity if they modify records directly in FM7 where relationships don't exist, but again, I can mandate that all data be changed via the web front end. Thank you for your thoughts in advance. Shannon -=-=-
April 3, 200520 yr If the DBA insists on creating the relationships, you could recommend that the "Separation Model" is used to instigate them. This way you will still have untethered access to the data tables. Good Luck. Garry
April 5, 200520 yr Author Garry, I presume from your response that you agree with me the relationships do not need to be defined in the DB tier. And if they do, you're suggesting an option I hadn't considered - the development of a DBA interface using the separation model. Excellent idea. Thanks as usual! Shannon -=-=-
April 5, 200520 yr If you do not need to use "built-in" relationships, well you do not need to use them -) When we were using CDML, Portals could be handy in some situations, however [FMP-InlineAction] tags were just as effective in other situations. Using different FX instances for different tables works fine for me (so far). All the best. Garry
April 13, 200520 yr Author I built a few web apps in 1996-98 using FM3 and Tango. I found ways of tweaking FileMaker to boost performance and generally tried to keep the burden off FileMaker. Using multiple FX instances is working fine for me too. Some pages have 8-10 unique FX calls to separate FM7 tables. The database tier has no logic beyond data entry validation. There are no calculations or scripts or graphics on any layouts. FM7 simply serves as data storage. I do have relationships defined in FM7, but this is just for the ERD drawing and I will likely remove them after development. Performance is great, but I haven't launched a full production version yet. I know performance can degrade for many reasons at each tier (html/css/js or php or FM7) as well as network conditions, etc. I'm just curious what others have found re: FX and relationships. What kind of performance testing has anyone here done with FX? Have you noticed a performance boost after removing the relationships in FM7? Any other general FM7 or FMS7A tips you use to tweak faster load times? Thanks! Shannon -=-=-
Create an account or sign in to comment