LK wrote:
Hello,
Please help me in overcoming a mental block about this wonderful thing called ORM. By reading some examples on using ORM, such as setting up Author/Books parent/child objects, I notice that each author and each book has to be individually assigned in the PHP script and saved. This is what I don't understand, 1. if my database contains thousands of authors and 100's of thousands of books, I have to 1) create each new object 2) assign each field value to it and 3) save it, and do this for 100's of thousands of records? Somehow that just does not make sense, since the records are already in the database, why do I have to save(..) them again?

Are you asking if it is necessary to create code that reproduces each row in each table in the database? If so, the answer is no, definitely not.

2. If I have an existing database with 100's of thousands of rows already populated, how does ORM know which record corresponds to which php object? In other words, how do I just start using existing mysql records as php objects?

Presumably the user has indicated which row they want, usually as a result of some search. You then instantiate a new object and populate it with those rows.

3. If an existing database has many relations between tables, how do I form complex joins between them using ORM?

PHP is a record-oriented step-wise language. It is good for writing programs with loops and if-then and case and so forth. It is not good at manipulating sets of table-based data.

For manipulating sets of table-based data we use SQL (at least I do).

As you may guess, I'm no fan of ORM. The main reason is what I just said above. OO code and table-based data are two very different beasts with very different natures. ORM tries to make one look like the other. Why would anybody want to do this? Hell if I know.

That being said, there are plenty of "solutions" out there that try to get around this. IMHO they are all Rube Goldberg machines.


Thanks for your response Leo

------------------------------------------------------------------------
Need a vacation? Get great deals to amazing places <http://us.rd.yahoo.com/evt=48256/*http://travel.yahoo.com/;_ylc=X3oDMTFhN2hucjlpBF9TAzk3NDA3NTg5BHBvcwM1BHNlYwNncm91cHMEc2xrA2VtYWlsLW5jbQ-->on Yahoo! Travel.
------------------------------------------------------------------------

_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com

Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php


--
Kenneth Downs
Secure Data Software, Inc.
www.secdat.com    www.andromeda-project.org
631-689-7200   Fax: 631-689-0527
cell: 631-379-0010

_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com

Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php

Reply via email to