The Separation Model – Part 7
When I was younger we frequently went camping. This trip felt like we were camping, but I forget if this particular trip was a planned camping trip or just an outing where my Father was helping a friend with chopping up some felled trees due to clearing some land. I remember being so excited about being able to take the small hatchet we had always kept by the fireplace.
I was finally old enough to wield that cool looking ax. The one I had always wanted to snatch up and start swinging around like some crazed arena fighter. Sharp, shiny, hard and heavy, I knew this was a cool tool (especially to boys), and I wanted to use it about as badly as that cool sword shaped letter opener my Grandfather had.
We get to the site, and I start whacking like crazy at the myriad of trunks scattered about the ground. Despite my careless abandon, I remember the incident to this day. My Father was helping out this friend who had not worked with a chainsaw before. While the unknown horrors could be imagined that this friend lost a leg or something worse, it was a bit more mundane, but still a lesson to be learned.
You see, while using a chainsaw, if the tip catches on something, even the log you're sawing, the chainsaw can kick right back into your face. While this was a very minor kickback incident (no injuries this time) and turned out to be a good lesson, I remember it well - as my Father told us both about how to avoid this potential hazard.
Switching over to the world of FileMaker and the design of your database, there are a number of things in your solution which could become hazardous kickbacks - although none that will physically take off a leg. The topic of this video covers one of those potential issues and shows you not only how to avoid the issue, but how to approach your development. You have to think about every action and its consequences.
The current state of the example KarateApp database leaves us with a problem and a solution which will help you in many other similar situations. This video is certainly one worth watching if performance impact is of interest to you!
Comments
Refresh not needed
Hi Matt,
Enjoy your videos immensely.
Cannot see the need to refresh or flush join for simple type ahead filter via relationship?
Ray Cologon at nightwing and many others have done this for a few years. Also showing techniques for multi field filtering. The REFRESH flush seems unnecessary, or am I missing something here?
Kind regards
Craig Smith
May not always be needed
The purpose of showing the cartesian flush concept is not because it always needs to be there, but so you can understand what is going on behind the scenes - which is always good to know.
When it comes to features like what it provides, I often simply ask myself "What is the cost to adding this feature?". In this case, if I remember correctly, even if it doesn't need to be there, the cost was likely nothing. The evaluation of a multi-predicate relationship using a cartesian based on a global is probably minimal.
If it doesn't slow the database down, it may end up being beneficial if the relationship changes in the future. If you prefer to keep it off because it may confuse the issue when heading into the Relationship graph then it certainly doesn't have to be there.
Also, out of interest, if you have any pointers to files which show how to additionally filter portals based on relationships or otherwise, then leave them on the article for others to benefit from. :)
-- Matt Petrowsky - ISO FileMaker Magazine Editor
User friendly Portal Filter via relationships pointer
Thanks
A very tidy demo of type ahead portal filtering with multiple field inclusion through relationships is found at Nightwing Enterprises
http://www.nightwing.com.au/FileMaker/demosX/demoX03.html
This demo also allows nice arrow key movement through portal whilst maintaining cursor in filter key.
Craig Smith
Your axe story...
Reminds me of when I went to visit an old friend at his boyhood home in the mountains of West Virginia. We were walking the property and went into the wood shed. John picked up an axe and said this axe has been in the family for over a "hunert" years. He smiled. "Its only has two new axe heads and three new handles. But all in all its held up pretty darn good don't you think?"
That's a lot like DBs as well, I think.
Jake