I'm having the same problem, if you already resolve please tell.

cumps
Filipe

On Feb 12, 11:07 am, David Herrmann <[email protected]> wrote:
> I'm currently planning a large project where I need a quite tricky setup:
>
> There is a main database holding customers and business cases. Each
> customer may create "unlimited" business cases which are represented by
> an actual application. The database of a business case application will
> consist of 25+ tables.
>
> I want a nice URI/routing schema providing something like this:
>
> /:businesscaseid/module/action/:ids/:whatever
>
> So the route has to be parsed for the business case first, because the
> business case holds the database connection information for the actual
> application that comes afterwards in the route.
>
> I see 2 primary solutions for the database setup:
> *) a single database for each business case as described
> *) all business cases in 1 database with table prefixes - but I don't
> think Doctrine is capable of inserting general table prefixes at a low level
>
> Considering the multiple databases as the better option I would create a
> basic database.yml like this (taken from the symfony+Doctrine book
> chapter 2):
>
> all:
>    main:
>      class: sfDoctrineDatabase
>      param:
>        dsn: 'mysql:host=localhost;dbname=maindb'
>        username: user
>        password: secret
>    businesscase:
>      class: sfDoctrineDatabase
>      param:
>        dsn: 'mysql:host=localhost;dbname=businesscasedb'
>        username: user
>        password: secret
>
> I would store the actual information of the database connection inside
> the main database, since I don't think dynamically altering the
> databases.yml is a good idea. The action flow would then require
> something like this:
>
> pre-parse the route
>    => get business case id
>    => get business case db connection from main db
>    => replace businesscase connection dbname, user and password
>       (access the settings array?)
>    => parse the rest of the route using the businesscase
>       connection as default for everything that remains
>
> I think I need to keep the databases apart because there might be
> plugins or modules in the future that are only applied to a limited set
> of business cases/customers.
>
> What do you think of this setup? What would be the best way to modify
> the second database connection on the fly before the actual connection
> is created? Where should I hook the pre-parsing?
>
> Would it perhaps be easiest to create a new routing class similar to
> sfDoctrineRoute and scan for the businesscaseid in there? Then I could
> use the standard sfDoctrineRoute features (which I would really like to
> have).
>
> Or is it better to keep all database connections in the databases.yml
> file and create them using a somehow triggered task? Then I might have
> to adapt the model schema for each business case.
>
> Thanks for any input and best regards,
>
> David

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

Reply via email to