Partitioning LLBL Entities for large scale projects

Posts   
 
    
fdb
User
Posts: 43
Joined: 01-Jul-2008
# Posted on: 27-Jul-2008 11:28:38   

Hi,

We are going to use LLBL for our new MIS project. My estimations show that we will have more than 800 database tables. We have divided our application to 4 different business areas:

FIN: Finance HRM: Human Resource Man. COM: Commercial PNL: Production and Logistics

All tables are inside a single centralized SQL Server 2005 Database. Each application is allowed to perform CRUD operations in its own area. For example an application in HRM area is not allowed to perform CRUD on FIN, COM and PNL tables. In this case, HRM applications should use services provided by other areas.

Considering the above constraints, what is the best way to generate and use LLBL entities and adapters?

Thanks, F. Badili

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39749
Joined: 17-Aug-2003
# Posted on: 27-Jul-2008 12:41:35   

Are these 4 groups in different schemas? THough as the areas are separated, I'd create 4 projects. And I'd split all groups into their own catalog: this has the benefit that things which are separated (as you describe it) are indeed separated.

Frans Bouma | Lead developer LLBLGen Pro
fdb
User
Posts: 43
Joined: 01-Jul-2008
# Posted on: 28-Jul-2008 07:49:22   

No! wink We are using 1 schema for all tables. What is your recommendation for this situation?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39749
Joined: 17-Aug-2003
# Posted on: 30-Jul-2008 10:41:51   

fdb wrote:

No! wink We are using 1 schema for all tables. What is your recommendation for this situation?

If things should be used separately, I think separating them is better. if that's not possible, you still can create 4 projects on the same schema, just add to each project the entities in the particular schema.

Frans Bouma | Lead developer LLBLGen Pro
fdb
User
Posts: 43
Joined: 01-Jul-2008
# Posted on: 30-Jul-2008 11:37:43   

There are some tables like "Employee" table which is referenced by many tables in all 4 areas. Only HRM applications are allowed to perform Insert, Delete, Update on this table and other applications in other groups are not supposed to do any thing with this table except reading it.

If I use 4 different schemas for my tables, what should I do with these common tables like "Employee"?

If I put all of the tables in a single schema and create one LLBL project for each group, what should I do with these common tables like "Employee"? If I generate code for these common tables in every LLBL project, then how do I prevent non HRM applications from performing CRUD on "Employee" table?

I really don't know how to solve this problem and provide a good architecture for this project! confused

DvK
User
Posts: 318
Joined: 22-Mar-2006
# Posted on: 30-Jul-2008 12:08:53   

Then why don't you use the Authorization functionality, by default available to you in LLBLGen ?! smile

fdb
User
Posts: 43
Joined: 01-Jul-2008
# Posted on: 01-Aug-2008 08:10:35   

Is it possible to make an entity read only? If the answer is yes, then how?

DvK
User
Posts: 318
Joined: 22-Mar-2006
# Posted on: 01-Aug-2008 09:30:50   

Please see the documentation for further info -> Generated code - Setting up and using Authorization

gtrz, Danny

fdb
User
Posts: 43
Joined: 01-Jul-2008
# Posted on: 13-Aug-2008 14:51:46   

What is your suggestion for minimizing dependency between tables of various business areas?

Let me provide more details for my problem:

I have an "Employee" table in the HRM schema of the database and an Order table in the COM schema of the same database. Order table has an EmployeeID column that references the primary key of the Employee table.

Lead of designer team asked me to find a solution for minimizing dependency between COM and HRM tables so they can change HRM tables with minimum effect on COM application.