Are you complaining about the need to use model constants for table names?
The entire structure of Propel and its model naming scheme is meant for
development eas and maintainability not necessarily for dynamic table names.
For example, if right near the end of the development period you suddenly
realise that it would be better to turn one column you may have had into a
normalised table and rather store ID's in that old column than the data you
used to.

One problem. You have coded that table name explicitly into all your methods
and saved all that data into teh wrong table. With propel you can easily
right your own methods to catch any calls your already developed code may
have made to this old column and alter it accordingly instead of having to
go through your potentially complex application and find all references and
change all your queries manually to reflect the new schema.

The reason to write queries "that way" is to allow you to accomodate changes
in your schema without totally having to re-write everything that came
before

On Thu, Mar 26, 2009 at 9:19 AM, Benjamin <agtle...@gmail.com> wrote:

>
> This question may be unrelated to symfony, and more related to
> database abstraction, but I'm wondering why I should pull the table
> names from the model.  I've been programming for a long time and have
> never seen anyone need to use dyamic table names except when they have
> prefixes on them that can change.
>
> So, this is a pain to type out:
>
> public static function getUserLabelsWithPasswordCounts($userId) {
>    $query = "SELECT
>                " . PasswordLabelPeer::NAME . ",
>                (SELECT COUNT(*) FROM " .
> PasswordLabelPasswordsPeer::TABLE_NAME . " WHERE " .
> PasswordLabelPasswordsPeer::LABEL_ID . " = " . PasswordLabelPeer::ID .
> ") AS pcount
>              FROM
>                " . PasswordLabelPeer::TABLE_NAME . "
>              WHERE
>                " . PasswordLabelPeer::ID . " = '$userId'
>              ORDER BY
>                " . PasswordLabelPeer::NAME . " ASC";
>
>    $con = Propel::getConnection();
>    $pdo = $con->prepare($query);
>    $pdo->execute();
>
>    return $pdo->fetchAll(PDO::FETCH_OBJ);
> }
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to 
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to