<font color="#000080" size="2">Expert Engines - will do - thanks.</font><br><br>
<div><span class="gmail_quote">On 07/06/06, <b class="gmail_sendername">Kyley Harris</b> &lt;<a href="mailto:kyley@harrissoftware.com">kyley@harrissoftware.com</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div>
<div lang="EN-US" vlink="blue" link="blue">
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Well. I think WC3 would point you towards a XML style representation of SQL Querying and XML row sets, using schema validation to assert the correctness of requests sent and data received.
</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Mediated through alterable rules is really the trick. This can mean so many things. There must be constraints on the alterable rules that all sides know about. Have you looked at Expert Engines?
</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<div>
<div style="TEXT-ALIGN: center" align="center"><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">
<hr align="center" width="100%" size="2">
</span></font></div>
<p><b><font face="Tahoma" size="2"><span style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</span></font></b><font face="Tahoma" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:delphi-bounces@ns3.123.co.nz" target="_blank">
delphi-bounces@ns3.123.co.nz</a> [mailto:<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:delphi-bounces@ns3.123.co.nz" target="_blank">delphi-bounces@ns3.123.co.nz</a>] <b><span style="FONT-WEIGHT: bold">
On Behalf Of </span></b>Paul A Norman<br><b><span style="FONT-WEIGHT: bold">Sent:</span></b> Wednesday, 7 June 2006 1:36 p.m.</span></font></p></div>
<div><span class="e" id="q_10bac3c8c5c32e1d_1"><br><b><span style="FONT-WEIGHT: bold">To:</span></b> NZ Borland Developers Group - Delphi List<br><b><span style="FONT-WEIGHT: bold">Subject:</span></b> Re: [DUG] Stored procedures and business logic
</span></div>
<div>
<p></p></div></div>
<div><span class="e" id="q_10bac3c8c5c32e1d_3">
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">opps Sorry,</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="#000066" size="2"><span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: Arial">This will let me have any dataset within reason on the client side</span></font><font face="Arial" color="navy" size="2">
<span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> </span></font></p></div>
<p><font face="Arial" color="black" size="2"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial">should be . . .</span></font></p>
<div>
<p><font face="Arial" color="black" size="2"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial">This will let me have any dataset within reason on the&nbsp;</span></font><font face="Arial" color="#660000" size="2">
<span style="FONT-SIZE: 10pt; COLOR: #660000; FONT-FAMILY: Arial"> server</span></font><font face="Arial" color="black" size="2"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"> side</span></font></p></div>

<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"><br><br>&nbsp;</span></font></p></div>
<div>
<p><span><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">On 07/06/06, <b><span style="FONT-WEIGHT: bold">Paul A Norman</span></b> &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:paul.a.norman@gmail.com" target="_blank">
paul.a.norman@gmail.com</a>&gt; wrote:</span></font></span> </p>
<div>
<blockquote style="MARGIN-TOP: 5pt; MARGIN-BOTTOM: 5pt; MARGIN-RIGHT: 0cm">
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&quot;To me it is non sensical to put business logic/rules/objects whatever the term you want to use, in the database. &quot;
</span></font></p></div></blockquote></div>
<div>
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">I have come to completely agree with that. I believe that may be true for the conceptual reasons I posted before. 
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">What needs to be stored is an abstraction of the rules (XMLed?), and I suspect that needs to be designed to check a central registry to see if there are any 
<u>carefully </u>conceived revisions.</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">What I am thinking of is abstraction of the application's data needs client side, and implementation of a server side abstraction, and a common set of rules for the two abstraction 
<em><i><font face="Arial"><span style="FONT-FAMILY: Arial">interfaces</span></font></i></em> for&nbsp;want of a better word, to operate and&nbsp;do their stuff&nbsp;&nbsp;under.</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="black" size="2"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial">Clinet interface</span></font><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">
 &lt;-&gt; </span></font><font face="Arial" color="black" size="2"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial">client side&nbsp;data abstraction </span></font><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">
&lt;-&nbsp;</span></font><strong><b><font face="Arial" color="#003300" size="2"><span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Arial">mediated through alterable rules</span></font></b></strong><font face="Arial" color="navy" size="2">
<span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;&nbsp;- &gt; </span></font><font face="Arial" color="#663300" size="2"><span style="FONT-SIZE: 10pt; COLOR: #663300; FONT-FAMILY: Arial">server&nbsp;side data abstraction
</span></font><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> &lt;-&gt; </span></font><font face="Arial" color="#663300" size="2"><span style="FONT-SIZE: 10pt; COLOR: #663300; FONT-FAMILY: Arial">
server database storage</span></font><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> </span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="#000066" size="2"><span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: Arial">This will let me have any dataset within reason on the client side. </span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="#000066" size="2"><span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: Arial">It seems simillar to aspects of the VM concept.</span></font> </p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="#000066" size="2"><span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: Arial">Is there a recomendation (e.g.&nbsp;WC3) any where on the format for </span></font><font face="Arial" color="#663300" size="2">
<span style="FONT-SIZE: 10pt; COLOR: #663300; FONT-FAMILY: Arial">&quot;</span></font><font face="Arial" color="#003300" size="2"><span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Arial">mediated through alterable rules&quot;
</span></font><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;</span></font><font face="Arial" color="#000066" size="2"><span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: Arial">
nothing has jumped oput at me yet. How is the Java one mentioned earlier&nbsp;done&nbsp; - is that standards based? </span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">I am facing the begining of the development of a larger application at the moment that has got me really focussed to be very careful on all of this before I get&nbsp; too deeply into it. 
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Some of the folk who are using it may be on linux and on flavours not conducive to Kylix.</span></font></p></div>

<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Hence on the Windows environment I&nbsp;am looking at leveraging Delphi with the php(for)Delphi approach and relying on straight PHP under linux. This may mean that Windows users will end up with better interfaces (possible more advanced features), but I can use common &quot;business logic&quot; etc &nbsp;through PHP 
<strong><b><font face="Arial"><span style="FONT-FAMILY: Arial">with Delphi able to easily write new modules for PHP</span></font></b></strong>.</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Further the database&nbsp;will be distributed in that it is to enbale &quot;nodes&quot; of datasets (holding wider info)&nbsp;to intersect when they are available on line. 
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">I've looked at many Open Source projects and learned a lot from them, but not quite found something that is going to keep all&nbsp;my people happy (either as is or readily alterable). 
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">So I am left with ascertaining this befoire I leap off into it. I </span></font><font face="Arial" color="#000066" size="2">
<span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: Arial">s there a recomendation (e.g.&nbsp;WC3) any where on the format for</span></font><font face="Arial" color="#663300" size="2"><span style="FONT-SIZE: 10pt; COLOR: #663300; FONT-FAMILY: Arial">
 &quot;</span></font><font face="Arial" color="#003300" size="2"><span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Arial">mediated through alterable rules&quot;</span></font><font face="Arial" color="navy" size="2">
<span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp; </span></font></p></div></div>
<div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Paul<br><br>&nbsp;</span></font></p></div></div>
<div><span>
<div>
<p><span><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">On 07/06/06, <b><span style="FONT-WEIGHT: bold">James Sugrue</span></b> &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:jamessugrue@xtra.co.nz" target="_blank">
jamessugrue@xtra.co.nz </a>&gt; wrote:</span></font></span> </p>
<div>
<div vlink="blue" link="blue">
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Anyone struggling with the concepts of n-tier apps and how to put in to practice could do worse than watch the following webcast series 
</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.microsoft.com/events/series/modernsoftdev.mspx" target="_blank">
http://www.microsoft.com/events/series/modernsoftdev.mspx</a></span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">while it focuses on .NET the principals can be applied to any language/platform.</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">To me it is non sensical to put business logic/rules/objects whatever the term you want to use, in the database. One of the major points of n-tier design is to allow change of one component of an app without effecting the rest. What happens to your business rules if your client decides to change to another database vendor or decides that they want to run disconnected so you need to use XML? Which is another reason incidentally why a lot of people are using web services in there middle tier…. 
</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<div>
<div style="TEXT-ALIGN: center" align="center"><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">
<hr align="center" width="100%" size="2">
</span></font></div>
<p><b><font face="Tahoma" size="2"><span style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</span></font></b><font face="Tahoma" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:delphi-bounces@ns3.123.co.nz" target="_blank">
delphi-bounces@ns3.123.co.nz</a> [mailto:<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:delphi-bounces@ns3.123.co.nz" target="_blank">delphi-bounces@ns3.123.co.nz</a>] <b><span style="FONT-WEIGHT: bold">
On Behalf Of </span></b>Paul A Norman<br><b><span style="FONT-WEIGHT: bold">Sent:</span></b> Wednesday, 7 June 2006 10:48 a.m.<br><b><span style="FONT-WEIGHT: bold">To:</span></b> NZ Borland Developers Group - Delphi List 
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"><br><b><span style="FONT-WEIGHT: bold">Subject:</span></b> Re: [DUG] Stored procedures and business logic</span></font></p></div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">I'm coming in late on this thread having really valued following&nbsp;the discussion.</span></font></p></div></div>
<div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Much of the difficulty in this area focusses around the simple thought that wrong things may be attempted on the db. And that the DB should do some of the thinking for the application. So much of the logic applied server side is designed to sort that out. 
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Is there any appeal to objective philosophical logic that points to any overall approach that spares us the intellectual burden of having to trouble shoot problems and&nbsp;&nbsp;that perhaps should not exist or matters that need to be solved serverside? 
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Knuth and other early logicticians propose what&nbsp;became simply termed the &quot;rubbish in rubbish out&quot; principle. It seems that in flow dynamics it is better to sort rubbish out before it goes &quot;down stream&quot;, so that you avoid having to send anything &quot;up stream&quot; calling for changes. 
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Many&nbsp;people of that era&nbsp;thinking&nbsp;through this stuff&nbsp;held the thought that each isloatible unit should have its own integrity. Hance Knuth's TeX approach in page layout which is in its own way, the storage and qualifying of data. The format of TeX assumes though that the 'user' has already pre-processed the actual&nbsp;data and it is warrantable for deployment. 
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">So I have been thinking alot about this stuff from the view that each level of the process should only be passing 'data' on to the next that is in all senses pure and appropriate. Now people will immeadiatley say that can not work for multi-development-client applications utilising a common database. 
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">To that I would make the suggestion&nbsp;of a &nbsp;server abstraction layer which requires that an application must send a verifying &quot;key&quot; that asserts that the post has the integrity required by the standard set for the process. Not&nbsp;just a password alone, the purpose being to focuss the developer to implement internally all necessary requirements prior to posting. These requirements can available &nbsp;following the Java strategy pointed out earlier. 
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Perhaps then logic and checks db side should only be as&nbsp;minimal as possible -&nbsp;essential enough to ensure the basic integrity of the db is actually maintained. 
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Would this&nbsp;perhaps effectively build applications which were to a high degree abstractable from the underlying database in use?</span></font></p></div>

<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Paul</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"><br><br>&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">On 07/06/06, <b><span style="FONT-WEIGHT: bold">Neven MacEwan</span></b> &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:neven@mwk.co.nz" target="_blank">
 neven@mwk.co.nz</a>&gt; wrote: </span></font></p>
<p style="MARGIN-BOTTOM: 12pt"><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Kurt<br><br>I have to agree with Kyley that clearly the definition of a business<br>rule is in dispute. This reminds me that a few years ago I tried to find 
<br>a definition of a 'business object' and only suceeded in finding what it<br>wasn't, namely a row of data in a RDB. Also by your definition you could<br>implement all business rules in the RDB, which you can't! for example a 
<br>business may have well defined rules for resolving a many-to-many<br>relationship (The most common implementation of this is an open item<br>transaction ledger) but the best the RDB can you is enforce RI.<br><br>I call the rules that protected the data DI (Data Integrity) this covers 
<br>RI, Constraints, Calculated Columns (Intra Row and Aggregated) you can<br>include State Checking (ie we cannot edit this record as it is locked).<br>But in my experience as much as you put in the DB you cannot implement a 
<br>business there IMHO<br><br>Neven<br><br><br><br><br>kurt wrote:<br>&gt; Neven MacEwan wrote:<br>&gt;&gt; All the constraint/ri ui code can a) be extracted out of the DB or b)<br>&gt;&gt; be autogenerated from metadata 
<br>&gt;&gt;<br>&gt;&gt;&nbsp;&nbsp;&gt; Where does referential integrity end and business logic begin anyway?<br>&gt;<br>&gt;&nbsp;&nbsp;- a database is a collection of constraints<br>&gt;&nbsp;&nbsp;- a business rule is a constraint<br>&gt;<br>&gt;&gt; firstly I make the distinction in the respect that a change in 
<br>&gt;&gt; business rules should not alter your ri, the difference is breaking ri<br>&gt;&gt; would result in &quot;what the sh#t is this&quot;, breaking business rules<br>&gt;&gt; results in &quot;should we be allowing this sh#t&quot; 
<br>&gt;<br>&gt;<br>&gt; I don't see the difference : referential integrity is one<br>&gt; (the most common) way of implementing business rules.<br>&gt;<br>&gt; &quot;unique index on client ID&quot; is a simple RI statement, 
<br>&gt; that enforces the rule that client ID's are unique within<br>&gt; that set of data, no?<br>&gt;<br>&gt;<br>&gt;&gt; Its basically the same mismatch that exists between an OO system and a<br>&gt;&gt; Relational Database, it all goes away if you accept/assume that a row 
<br>&gt;&gt; of a table is a class instance persisted, the question is should you?<br>&gt;<br>&gt; Nope. Class = Type ;)<br>&gt;<br>&gt;<br>&gt; Cheers, Kurt.<br>&gt; _______________________________________________<br>&gt; Delphi mailing list 
<br>&gt; <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Delphi@ns3.123.co.nz" target="_blank">Delphi@ns3.123.co.nz</a><br>&gt; <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://ns3.123.co.nz/mailman/listinfo/delphi" target="_blank">
http://ns3.123.co.nz/mailman/listinfo/delphi</a><br>&gt;<br>&gt;<br><br>--<br>Neven MacEwan ( B.E. E&amp;E)<br>Ph. 09 620 1356 Mob. 027 4749 062<br><br>New Address Details<br>===================<br>MWK Computer Systems<br>
1 Taumata Rd<br>Sandringham<br>Auckland<br><br>Ph 620 1356<br>Fx 620 1336<br><br><br>_______________________________________________ <br>Delphi mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Delphi@ns3.123.co.nz" target="_blank">
Delphi@ns3.123.co.nz</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://ns3.123.co.nz/mailman/listinfo/delphi" target="_blank">http://ns3.123.co.nz/mailman/listinfo/delphi</a><br><br></span></font>
</p></div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div></div></div>
<p style="MARGIN-BOTTOM: 12pt"><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"><br>_______________________________________________<br>Delphi mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Delphi@ns3.123.co.nz" target="_blank">
Delphi@ns3.123.co.nz </a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://ns3.123.co.nz/mailman/listinfo/delphi" target="_blank">http://ns3.123.co.nz/mailman/listinfo/delphi</a><br><br></span></font>
</p></div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"><br><br></span></font></p></span></div></div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></span></div>
<div></div></div></div><br>_______________________________________________<br>Delphi mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Delphi@ns3.123.co.nz">Delphi@ns3.123.co.nz</a><br>
<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://ns3.123.co.nz/mailman/listinfo/delphi" target="_blank">http://ns3.123.co.nz/mailman/listinfo/delphi</a><br><br><br></blockquote></div><br>