OK thanks for the replies, I understand your reasons but this too seems
unmanageable, say if you have 50 customers, thats 50 databases!!? or am I
missing somthing?

Thanks again.

Dan





2009/12/21 Guillaume ORIOL <[email protected]>

>  I had two reasons in mind:
> - security (the db user has rights only on its database)
> - simplicity (no need to prefix table names or to add a customer column in
> every table PK)
>
> --
> Guillaume
>
> Le 21/12/09 16:40, Daniel Latter a écrit :
>
> Thanks for the reply,
>
> What was your main reason for using separate databases instead of one
> single database?
>
> Dan
>
>
>
>
> 2009/12/21 Guillaume ORIOL <[email protected]>
>
>> Yes, I have exactly one database per customer and one more for supervision
>> purpose (where access to customer databases are defined).
>>
>> Le 21/12/09 16:08, Daniel Latter a écrit :
>>
>> Hi,
>>
>> I have a situation very similar to yours, although I am not sure about the
>> answer to your question, I have a quesiton for you: when you say you have
>> several databases, what do you mean? do you mean one per
>> customer/application?
>>
>> Thanks
>> Dan
>>
>>
>>
>>
>>
>> 2009/12/21 Guillaume ORIOL <[email protected]>
>>
>>> Working on an application that is the same for multiple customers, I had
>>> to face a design option.
>>> I wanted to avoid installing the application as many times as we had
>>> customers (for maintenance reasons).
>>> Therefore I chose to have a unique code installation but several
>>> databases.
>>> Each customer would access its application by adding its account name to
>>> the application base URL:
>>> webapp.domain.com/account1/
>>> webapp.domain.com/account2/
>>> etc.
>>>
>>> Following this URL prefix are the regular MVC parameters, ie:
>>> webapp.domain.com/account1/module/controller/action
>>>
>>> I define a default route replacement in my Bootstrap including the
>>> account parameter (see below) and retrieve this special parameter from a
>>> FrontController plugin where I setup the default database adapter.
>>>
>>> I encounter a problem with functions that build URLs (for instance
>>> $view->url(...) or $redirector->gotoRoute(...), etc.).
>>> All of these functions should add the current account parameter at the
>>> beginning of the URL, but none of them is aware of it.
>>> (It should also apply to other functions like $page->getHref() for
>>> Zend_Navigation.)
>>>
>>> What design option would you suggest (overload all of these functions,
>>> change dynamically the base URL of the application)?
>>>
>>> Thanks for any help
>>> - - - - -
>>> Here is the redefined default route:
>>>        $route = new Zend_Controller_Router_Route(
>>>            ':account/:module/:controller/:action/*',
>>>            array(
>>>                  'account'    => 'demo',
>>>                  'module'     => 'default',
>>>                  'controller' => 'index',
>>>                  'action'     => 'index')
>>>        );
>>>        $router->addRoute('default', $route);
>>>
>>> I would also like to make "
>>> webapp.domain.com/account1/module/controller/action" equivalent to "
>>> account1.webapp.domain.com/module/controller/action". I guess it is
>>> possible with the Zend_Controller_Router_Route_Hostname, but did not try
>>> already.
>>>
>>> $route = new Zend_Controller_Router_Route_Hostname(
>>>    ':account.webapp.domain.com',
>>>    array(
>>>        'module'     => 'default',
>>>        'controller' => 'index',
>>>        'action'     => 'index'
>>>    )
>>> );
>>> --
>>>
>>> Guillaume ORIOL
>>>
>>

Reply via email to