Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Perl ORM comparison (Class::DBI vs. DBIx::Class vs. Rose::DB::Object)

by phaylon (Curate)
on Jul 28, 2008 at 10:42 UTC ( [id://700497]=note: print w/replies, xml ) Need Help??


in reply to Perl ORM comparison (Class::DBI vs. DBIx::Class vs. Rose::DB::Object)

Just some comments…

As a Class-DBI Con you have

Single author => single point of failure

but then, in the DBIx-Class Cons you have

Multiple contributions => less coherence expected.

What do you think is better now, more or less contributors?

Also, DBIx-Class seems to be both, the "Second worst performance" and the "Second best performance" which both are Pros and Cons in your list. Is it really both a pro and a con when it is in the middle?

No support for customizable column inflation/deflation. (is this true?)

No, it's not. There are already some column inflation extensions available on CPAN.

No distinction for "primary/essential/other/all" column kinds except for primary key and "others". (Maybe a performance issue for large columns.) (is this true?)

DBIx-Class lets you specify what fields you want to have in the resultset.

Also, what do you mean by No support for static class metadata generation.? If you mean DBIC can't create the classes for you, you haven't taken a look at DBIx-Class-Schema-Loader.

Also, your DBIx-Class Con list contains both of these:

Does NOt have seamless support for handy database domains (production, test, dev, staging, ...) and types (main, archive, reporting, ...).

Supports the innovative concepts of database domain(production, test, dev, staging, ...) and database type (main, arcvhive, reporting, ..).

Ordinary morality is for ordinary people. -- Aleister Crowley

Replies are listed 'Best First'.
Re^2: Perl ORM comparison (Class::DBI vs. DBIx::Class vs. Rose::DB::Object)
by aulusoy (Scribe) on Jul 30, 2008 at 21:14 UTC

    With regard to single/multiple authors, I have chosen to be neutral in the comparison. This way, the reader can decide on it himself/herself.

    I have taken out the second best/worst performance bit. You have a point there.

    Static class metadata generation is a feauture of Rose::DB::Object only. This is distinct from dynamic run-time generation, which is present in DBIx::Class too. Rose::DB::Object lets you generate the code from the database and then save it in a static manner. It's a semi-manual process. On the other hand, the fully dynamic style (like that of DBIx::Class) is also available.

    For the other points, I have updated the comparison.

      Static class metadata generation is a feauture of Rose::DB::Object only. This is distinct from dynamic run-time generation, which is present in DBIx::Class too. Rose::DB::Object lets you generate the code from the database and then save it in a static manner.
      That's incorrect. DBIx-Class' Loader implementations have been able to do that for some time now. See DBIx::Class::Schema::Loaders dump_to_dir method.

      Ordinary morality is for ordinary people. -- Aleister Crowley

        Thank you for the comment and the pointer. I've fixed the comparison accordingly.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://700497]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2024-03-28 10:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found