|
Posted by Colin McKinnon on 05/15/06 00:39
Thanks to everybody - its welcome to see such informed debate at
c.l.p.
It may be relevant to point out that I used to earn my living developing
RAD applications in MS-Access. It was great for battering out
applications really quickly. It was not nearly so good for collaborative
and large scale development work. What really put me off it - and one of
the main reasons I began developing in PHP is that it is a total PITA
to distribute and maintain applications. So currently I am trying to
seperate what was good in MS-Access from the bad bits and recreate them in
PHP. This is not always as easy as it sounds - avoiding control inversion
in the UI component was difficult - but I think I acheived it sensibly in
PfP Studio. Now I'm trying to do the same with the database.
Kenneth Downs (Secure Data Software, Inc) was the only person brave enough
to suggest a tool to meet my stream-of-consciousness ramblings about
data-abstraction layers in PHP. His library certainly looks viable as a
basis for building my own solution on. As he rightly points out, since the
SQL DDL is inadequate for describing the structure of a relational database
then maybe the right approach is to use a meta-DDL to develop the database
and drive the coding of the PHP.
It was fairly predictable that the issue of primary keys would come up.
Dikkie Dik pointed out that using surrogate keys solves several issues
in that the value is constant after creation (it also makes it simpler
to adapt boilerplate scripts to different applications) however that
has to be balanced against the long term costs caused by undermining
the relational model. I have yet to see any compelling evidence for
using a surrogate key over a natural one - I think Toby Inkster agrees
with me there.
So thanks for your feedback, I have enough material now to get me totally
confused ;) but hopefully I'll hammer out something sensible from it. Of
course if someone beats me to it, I hope I'll hear about here.
C.
Navigation:
[Reply to this message]
|