[Dbix-class] any factual comparisons of Oracle, PostgreSQL, MySQL ?

Dan Horne dan.horne at redbone.co.nz
Thu Apr 14 20:13:24 GMT 2011



On 15/04/2011, at 6:17 AM, Robert Kinyon <rob.kinyon at gmail.com> wrote:

> On Thu, Apr 14, 2011 at 14:14, Matija Grabnar <matija at serverflow.com> wrote:
>>> Actually, no, it's not. In the strictest possible mode, employing
>>> every single way to ensure your data is consistent and that foreign
>>> keys are being honored, there's a simple thing anyone can do to screw
>>> you with MySQL.
>>> 
>>> SET FOREIGN KEYS OFF;
>> 
>> Oh, you mean that, if you turn checking off, it doesn't do checking?
>> Gasp! Why, that's like saying that a gun fires bullets when you pull
>> the trigger. So just don't set foreign keys off. Foreign keys is on by
>> default.
> 
> I didn't turn foreign keys off. My idiot coworker did.

I was on a Perl project where my idiot colleague kept ignoring our accessors and continually accessed our data structures directly. The Java guys mocked Perl as not being a real language be because we couldn't prevent this. 

>>> BAM! You're done. Finished. You cannot trust a single thing in your
>>> database the way you can in EVERY SINGLE OTHER relational database.
>> 
>> Well, why did you turn off checking? It's a TOOL, a powerful tool. Like all
>> powerful tools, if you disabled the safeties, you have to know what you're
>> doing. Just like a power saw, you can do very good work, or you can cut off
>> your
>> thumb.
> 
> How about making an option where I can disable the ability for certain
> users to turn off foreign keys? Or turn off strict mode?
> 
> The whole point of a relational datastore is to be able to make
> assertions about the relationships between the data points. If foreign
> key checking can be turned off, then not validated when turned on, I
> cannot make those assessions. Thus, the quality of the data is null.
> 
> Rob

The whole point of our classes was to provide a uniform way to maintain our data. If we couldn't enforce it then the quality if the data is null

By the way don't grant developers the ability to turn off constraint checking. Don't use MyIsam storage if you want to enforce integrity. InnoDB is now the default engine, so you'd need to explicitly make a design choice not to use it

> _______________________________________________
> List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
> Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk



More information about the DBIx-Class mailing list