<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Object-Influenced Design &amp;amp FileMaker Pro</title>
	<atom:link href="http://fmcollective.com/2006/08/24/object-influenced-design-amp-filemaker-pro/feed/" rel="self" type="application/rss+xml" />
	<link>http://fmcollective.com/2006/08/24/object-influenced-design-amp-filemaker-pro/</link>
	<description>Syndicating the best FileMaker blogs</description>
	<lastBuildDate>Sat, 29 Nov 2008 04:44:04 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: corn</title>
		<link>http://fmcollective.com/2006/08/24/object-influenced-design-amp-filemaker-pro/comment-page-1/#comment-24</link>
		<dc:creator>corn</dc:creator>
		<pubDate>Thu, 09 Nov 2006 03:52:20 +0000</pubDate>
		<guid isPermaLink="false">http://fmcollective.proofgroup.com/?p=14#comment-24</guid>
		<description>I&#039;ve been a bit remiss in posting to the blog lately and somewhat discouraged because I had composed a longish response to Danny&#039;s comment only to have it disappear before posting. I have finally rewritten it (or what I remember of it) below.

The concept of sub-Entities (the data modeling concept &quot;Entity&quot; being distinguished here from the general term &quot;entity&quot;) is one that appears to be new to many FMP developers. FMP 6 did not make them easy to implement while still remaining somewhat faithful to FMP idiom. FMP 8 makes this a much more accessible model without jumping through excessive hoops.

How a system is modeled depends in large part on the design goals of that system. If the system is planned to include more generic activities (e.g. implementing an AP/AR system) then you may need to abstract further to the concept of a &quot;Party&quot; to allow any entity (think people, businesses, government agencies) to be party to a transaction.

I perhaps wasn&#039;t clear in my presentation, and certainly I was overly ambitious in attempting to deliver a 4 hour session in 75 minutes, but under the OID model one would not interact with the &quot;people file&quot; in any real sense. You could very well purchase a database of 300 million &quot;people&quot; but it doesn&#039;t matter - they&#039;re just names and birth dates and such. The interaction is from the perspective of the sub-Entity objects in the system - the &quot;Prospects&quot; and &quot;Students&quot; and &quot;Parents.&quot; Rather than interacting with a list of 300 million people you would interact with a list of 1200 students or 7000 prospects.

In some cases the representation of a particular sub-Entity may be nothing more than a table of IDs (i.e. CurrentStudents vs AllStudents). This isn&#039;t a new concept - other systems call these things &quot;named selection&quot; or &quot;View&quot; but since we don&#039;t have virtual or dynamic tables in FMP we need to predefine these selections with tables and fields.

The trap to avoid is conflating FMP table structure with FMP interface structure. Data modeling is an exercise in organizing and storing the data. Everything else in FMP is typically presentation modeling. OID is about presentation modeling and is only mildly concerned with data modeling. FMP 8 gets us closer than ever to the goal of being able to model the presentation of data more or less independent of that data. Unfortunately FMP does not help you make the distinction between the two - most have opted for naming conventions to serve that purpose.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve been a bit remiss in posting to the blog lately and somewhat discouraged because I had composed a longish response to Danny&#8217;s comment only to have it disappear before posting. I have finally rewritten it (or what I remember of it) below.</p>
<p>The concept of sub-Entities (the data modeling concept &#8220;Entity&#8221; being distinguished here from the general term &#8220;entity&#8221;) is one that appears to be new to many FMP developers. FMP 6 did not make them easy to implement while still remaining somewhat faithful to FMP idiom. FMP 8 makes this a much more accessible model without jumping through excessive hoops.</p>
<p>How a system is modeled depends in large part on the design goals of that system. If the system is planned to include more generic activities (e.g. implementing an AP/AR system) then you may need to abstract further to the concept of a &#8220;Party&#8221; to allow any entity (think people, businesses, government agencies) to be party to a transaction.</p>
<p>I perhaps wasn&#8217;t clear in my presentation, and certainly I was overly ambitious in attempting to deliver a 4 hour session in 75 minutes, but under the OID model one would not interact with the &#8220;people file&#8221; in any real sense. You could very well purchase a database of 300 million &#8220;people&#8221; but it doesn&#8217;t matter &#8211; they&#8217;re just names and birth dates and such. The interaction is from the perspective of the sub-Entity objects in the system &#8211; the &#8220;Prospects&#8221; and &#8220;Students&#8221; and &#8220;Parents.&#8221; Rather than interacting with a list of 300 million people you would interact with a list of 1200 students or 7000 prospects.</p>
<p>In some cases the representation of a particular sub-Entity may be nothing more than a table of IDs (i.e. CurrentStudents vs AllStudents). This isn&#8217;t a new concept &#8211; other systems call these things &#8220;named selection&#8221; or &#8220;View&#8221; but since we don&#8217;t have virtual or dynamic tables in FMP we need to predefine these selections with tables and fields.</p>
<p>The trap to avoid is conflating FMP table structure with FMP interface structure. Data modeling is an exercise in organizing and storing the data. Everything else in FMP is typically presentation modeling. OID is about presentation modeling and is only mildly concerned with data modeling. FMP 8 gets us closer than ever to the goal of being able to model the presentation of data more or less independent of that data. Unfortunately FMP does not help you make the distinction between the two &#8211; most have opted for naming conventions to serve that purpose.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven H. Blackwell</title>
		<link>http://fmcollective.com/2006/08/24/object-influenced-design-amp-filemaker-pro/comment-page-1/#comment-25</link>
		<dc:creator>Steven H. Blackwell</dc:creator>
		<pubDate>Wed, 27 Sep 2006 00:16:55 +0000</pubDate>
		<guid isPermaLink="false">http://fmcollective.proofgroup.com/?p=14#comment-25</guid>
		<description>&quot;In our current system parents and students are added to our admissions db as soon as they start the admissions process. At this point they are assigned and ID which would stay with them from that point on. This is fine in our present set-up but I wonder if it would be less than desirable to have a people file full of people who never actually came to the school.&quot;

Sure;  this happens all the time.  This is a business rule, not an application architecture question.

When someone&#039;s status changes, e.g. from prospect to student, that&#039;s the only change.  But after that change, you may be keeping entirely new classes of information about them.

Enter the concept of the subclass or subentity.  Not all People are students.  They don&#039;t need tracking of student information.  But when they do become a Student, their student infomation requires tracking.  But so does their original People information.

So, the Students table is a subclass or subentity of the People table.  And that&#039;s the way that I handle these type situations from an architectural standpoint.

Steven H. Blackwell</description>
		<content:encoded><![CDATA[<p>&#8220;In our current system parents and students are added to our admissions db as soon as they start the admissions process. At this point they are assigned and ID which would stay with them from that point on. This is fine in our present set-up but I wonder if it would be less than desirable to have a people file full of people who never actually came to the school.&#8221;</p>
<p>Sure;  this happens all the time.  This is a business rule, not an application architecture question.</p>
<p>When someone&#8217;s status changes, e.g. from prospect to student, that&#8217;s the only change.  But after that change, you may be keeping entirely new classes of information about them.</p>
<p>Enter the concept of the subclass or subentity.  Not all People are students.  They don&#8217;t need tracking of student information.  But when they do become a Student, their student infomation requires tracking.  But so does their original People information.</p>
<p>So, the Students table is a subclass or subentity of the People table.  And that&#8217;s the way that I handle these type situations from an architectural standpoint.</p>
<p>Steven H. Blackwell</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ernest Koe</title>
		<link>http://fmcollective.com/2006/08/24/object-influenced-design-amp-filemaker-pro/comment-page-1/#comment-26</link>
		<dc:creator>Ernest Koe</dc:creator>
		<pubDate>Mon, 25 Sep 2006 23:06:32 +0000</pubDate>
		<guid isPermaLink="false">http://fmcollective.proofgroup.com/?p=14#comment-26</guid>
		<description>It&#039;s an interesting question, when DO we add a person to the PEOPLE table? My short answer is generally, always. That said, there is a bit of nuance to this and there are other ways to deal with this issue.

I do understand the objection. We are used to tables that are limited in purpose. It makes things easier to manage, keeps the scope of the problem down, and it keeps our logic and UI specific to a  smaller conceptual chunk, say STUDENTS instead of all PEOPLE. It would be possible to have two databases of contacts, one for people who aren&#039;t part of the school and another for people who are. Most FileMaker-based design patterns do essentially this. The tradeoff is that you have to manage which database is authoritative and since we cannot dynamically bind a layout object (field object) to the the actual column of a table, making the interface point to the correct authoritative datastore is challenging in FMP.</description>
		<content:encoded><![CDATA[<p>It&#8217;s an interesting question, when DO we add a person to the PEOPLE table? My short answer is generally, always. That said, there is a bit of nuance to this and there are other ways to deal with this issue.</p>
<p>I do understand the objection. We are used to tables that are limited in purpose. It makes things easier to manage, keeps the scope of the problem down, and it keeps our logic and UI specific to a  smaller conceptual chunk, say STUDENTS instead of all PEOPLE. It would be possible to have two databases of contacts, one for people who aren&#8217;t part of the school and another for people who are. Most FileMaker-based design patterns do essentially this. The tradeoff is that you have to manage which database is authoritative and since we cannot dynamically bind a layout object (field object) to the the actual column of a table, making the interface point to the correct authoritative datastore is challenging in FMP.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Danny Dawson</title>
		<link>http://fmcollective.com/2006/08/24/object-influenced-design-amp-filemaker-pro/comment-page-1/#comment-27</link>
		<dc:creator>Danny Dawson</dc:creator>
		<pubDate>Fri, 22 Sep 2006 10:29:03 +0000</pubDate>
		<guid isPermaLink="false">http://fmcollective.proofgroup.com/?p=14#comment-27</guid>
		<description>Hi 

I was lucky enough to see Corn&#039;s presentation and as I work in education the issues it addressed were very interesting. The major problem that this approach addresses is people with multiple roles. A Staff member may also be a parent and using the people file method means that the source of the persons ID would be this file and therefore the ID would be the same in all parts of the system that person appears in. Using this would mean that related telephone/address and emails would be centralised to one ID which is much more efficient. The main question this raised for me was at what point should a person be added to the people file. In our current system parents and students are added to our admissions db as soon as they start the admissions process. At this point they are assigned and ID which would stay with them from that point on. This is fine in our present set-up but I wonder if it would be less than desirable to have a people file full of people who never actually came to the school. It&#039;s a small point and does not negate the usefulness of Corns method I am just bringing it up to see what people think.  
</description>
		<content:encoded><![CDATA[<p>Hi </p>
<p>I was lucky enough to see Corn&#8217;s presentation and as I work in education the issues it addressed were very interesting. The major problem that this approach addresses is people with multiple roles. A Staff member may also be a parent and using the people file method means that the source of the persons ID would be this file and therefore the ID would be the same in all parts of the system that person appears in. Using this would mean that related telephone/address and emails would be centralised to one ID which is much more efficient. The main question this raised for me was at what point should a person be added to the people file. In our current system parents and students are added to our admissions db as soon as they start the admissions process. At this point they are assigned and ID which would stay with them from that point on. This is fine in our present set-up but I wonder if it would be less than desirable to have a people file full of people who never actually came to the school. It&#8217;s a small point and does not negate the usefulness of Corns method I am just bringing it up to see what people think.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
