Table level constraints such as uniqueness and foreign keys need to be done
with a round-trip unless you cache all the data on your thin client app.
So the general rule, if such a thing exisits, is to do cheap round-trips on
field validation and leave expensive ones to the end of the record or batch.


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Martin Ease
Sent: Thursday, January 18, 2001 2:24 PM
To: Multiple recipients of list database
Subject: [DUG-DB]: 3 tier and business rules


Hi all

Here is a question which I'd like to get some feedback on:

I first of all will admit that I am a very recent convert to the world of
multi tier. My experience so far is that Delphi makes developing 3 tier
_relatively_ easy, and I enjoy it a lot.


The issue is where to store business rules, as this is what I've heard/read
about to be one of the many benefits of multi tier development.
All business rules ideally would be stored in one common place, i.e. the
middle tier. For a MIDAS application that is the MIDAS server, right?

Now image this example:
On the client I have a screen which lists campaigns. The user can
add/modify/delete campaigns, and amongst other things each campaign must
have a unique name (business rule). If you don't agree with the fact that
this is a business rule, please imagine one that you do agree with as it is
not the central point I am making here.

Now the user wants to know immediately after making a change, or adding a
new campaign, that the name satisfies the uniqueness constraint.
Using client data sets (CDS), the change would only be posted to the MIDAS
server, once the screen is closed (or even once the whole client program
terminates). This does not satisfy the user as they want feedback
immediately.

To get around this, I can either post all changes immediately, or do a
special lookup to determine that the campaign name is unique. In either
case, I have to generate extra traffic between client and server, which is
what the whole multi tier architecture is trying to minimise.

I also know that I can add constraints (which are a form of business rules)
to the dataset on the server, and migrate these to the client via the
provider interface. However, some business rules cannot be expressed as
record level constraints, so what do you do?

I'd be interested in any feedback, suggestions etc.

Cheers
Martin



"WS SMTP relay" made the following
 annotations on 01/18/01 14:23:56
----------------------------------------------------------------------------
--

[INFO] -- Content Manager:
[MMSSOV] This e-mail message and any attachments are confidential to
Sovereign Limited and subsidiaries and subject to legal privilege. If you
have received this e-mail in error, please advise the sender immediately and
destroy the message and any attachments.  If you are not the intended
recipient you are notified that any use, distribution, amendment, copying or
any action taken or omitted to be taken in reliance of this message or
attachments is prohibited.

============================================================================
==

---------------------------------------------------------------------------
  New Zealand Delphi Users group - Database List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz

---------------------------------------------------------------------------
  New Zealand Delphi Users group - Database List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz

Reply via email to