>If you are going to have a database that will be centralized for the
company
>and will have many different clients accessing it, I would tell them not to
use
>MySQL.

OK, though 5.0 makes it possible to write stored procs that protect clients
from MySQL's gotchas, and that keep database-protecting validation where it
belongs--on the server.

PB
  ----- Original Message -----
  From: Stormblade
  To: [EMAIL PROTECTED]
  Sent: Tuesday, April 20, 2004 8:35 AM
  Subject: Re: Gripe with MySQL


  On Tue, 20 Apr 2004 09:48:11 +0200 (CEST), Jochem van Dieten wrote:

  > Stormblade said:
  >> Ok. Love MySQL and I will be using it for my personal use and
  >> recommending it to clients as a lower cost alternative. I've only
  >> been using it for a very short time but there one major gripe I have
  >> with it and I believe it's just a design thing.
  >>
  >> MySQL seems to put the burden of error checking and such on the
  >> client.
  >>
  >> - All fields have a default value even when I don't tell it to?
  >> - Allow Null will only result in an error if I explicitly try to set
  >> the field to null.
  >
  > Date fields allow invalid dates: 0000-00-00
  > Trailing spaces are silently discarded (fixed in 5)
  > Decimal fields are silently truncated if the inserted value is too long
  > etc.
  >
  > http://sql-info.de/mysql/gotchas.html has a nice list.

  Thanks for the link. That's very informative.

  >
  >> These are the two things that I really dislike. I think it's a poor
  >> design to rely on clients only for error checking. MySQL supports
  >> foreign keys.
  >
  > To some extend. It is not enforced that the parent record is unique,
  > which is a requirement with foreign keys according to the SQL spec.

  Aye but at least it doesn't allow me to add/delete if it'll create an
  orphan.

  >> Relying on clients for database integrity is a bad idea in my
  >> experience. --
  >
  > Then you choose the wrong database.
  >
  > Jochem

  Well, choosing a database involves more than just not liking a particular
  approach. Their approach in this case only means that I would not
recommend
  using MySQL for any large scale applications. Like the situation I
  described earlier. If you are going to have a database that will be
  centralized for the company and will have many different clients accessing
  it, I would tell them not to use MySQL. It would be a bad idea IMO. Not
  that it couldn't work of course.

  But for small projects it is find. It's cost effective and it does the job
  well. Like the project I'm currently working on. Just a small web site.
  Only one web app will be accessing the database and I wrote it. And I have
  another project coming up, similar in size that I will be using MySQL for
  as well.

  So it's not that I chose the "wrong" database. Just that I believe their
  design choices make the database the wrong choice for certain situations
  and applications.

  I would love to see MySQL add more features that allowed the database to
do
  more of the work when it comes to integrity but until it does I simply
will
  not use it for situations where that could be a problem.
  --
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  Stormblade (Shaolin Code Warrior)
  Software Developer (15+ Years Programming exp.)

  My System: http://www.anandtech.com/mysystemrig.html?rigid=1683
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


  --
  MySQL General Mailing List
  For list archives: http://lists.mysql.com/mysql
  To unsubscribe:
http://lists.mysql.com/[EMAIL PROTECTED]


Reply via email to