Author |
Topic |
henrikop
Constraint Violating Yak Guru
280 Posts |
Posted - 2006-10-31 : 05:30:30
|
I don't know how to keep it simple, but I try.We've developed a "White Label" solution for HRM. The databases has "Licenses" and one mast License. The master license contains core records. For example there're many choicelists. A choicelist can contain "Job Functions". Each Licensee has his own. But the choicelist "Country" is core. Every License uses the same countries.All of the tables of the Database have a first column which is the primary key which is a UNIQUEIDENTIFIER (GUID).It is a webbased solution. We managed to make the userdata "virtual". A license can make it's own datatables (but cannot change the Core datatables). Also the forms to enter data and the validation of data is dynamic. It's easy to change the HRM even to a CRM solution. Every record in a table has a counterpart in a central table "DataObject". With this it's easy to make your own relations. e.g. a white label provider needs a objecttype "Location" Locations can have addresses. Address records can point to Persons, Addresses, Organisations and thus Locations.This is just to give some insight.Now my point (and question) emerges: We are still developing the application and the HRM template. But our customers will get there own database and are going to use it. We will have more databases soon and some are in different locations (reside on different datacenters).What would be my approach to make all these database "Updateable"? If we make new forms (these are not ASPX files, we have only one ASPX file which is Default.aspx, the rest is dynamicly rendered, forms are thus in the database not in the file system), or when we make new table, how do we get them across?I assume that we cannot "SQLDiff" all of the databases, can we make one script and run it on all databases? What restrictions need we be aware of? Does anyone has experience with this?Maintaining three databases (Development, Testing, Production) would not be to hard, but if we have like 1000 databases?I don't expect a final answer, but maybe some directions to sites, topics, books, white papers, etc.Henri~~~~There's no place like 127.0.0.1 |
|
DonAtWork
Master Smack Fu Yak Hacker
2167 Posts |
|
henrikop
Constraint Violating Yak Guru
280 Posts |
Posted - 2006-10-31 : 08:38:35
|
Hiya Don... Seems is the right word. It isn't.The application is a regular webapplication. It uses the ASP.NET 2.0 controls like gridviews, treeviews and such. But the properties of the controls and validation and businessrules and such are coming from the database. This is a working scalable performing application which fills actual business needs of customers, and looks good and uses code the way it's meant to be. It's just that the datamodel is flexibel, for example we use Persons. This can be employee's, people working at other compaby's, partners of employees or even children of contactpersons. Basicaly a person is a person, the role or additional objects determine what a person does. This works like magic! Users can be linked to people en their roles determine what they see.I am even as far as I can copy licenses (and all objects) to other databases because of this datamodel. But we will go on developing better templates & constructs and we want only one version of the source-code working on every server and database. How do we keep all these databases the same (the same is not exactly the same, but the core records and structure should be the same).Just like windows XP. The whole world uses it slightly different, but we all have the same updates....Henri~~~~There's no place like 127.0.0.1 |
 |
|
DonAtWork
Master Smack Fu Yak Hacker
2167 Posts |
Posted - 2006-10-31 : 10:01:34
|
Then i would say that the "core records" should be on ONE server, in ONE database, and the children databases or liscenses or whatever you call them, can link to them via linkserver.[Signature]For fast help, follow this link:http://weblogs.sqlteam.com/brettk/archive/2005/05/25.aspxLearn SQLhttp://www.sql-tutorial.net/ http://www.firstsql.com/tutor.htm http://www.w3schools.com/sql/default.asp |
 |
|
Sitka
Aged Yak Warrior
571 Posts |
Posted - 2006-11-01 : 22:21:12
|
http://www.db4o.com/about/productinformation/"it's definitely useless and maybe harmful". |
 |
|
Lumbago
Norsk Yak Master
3271 Posts |
Posted - 2006-11-02 : 02:29:51
|
It sounds like the regular software vendors problem...how to keep your software up to date on the clients machine/server. There is no way you can "control" all of these databases as you'll have way to many security issues to be able to handle it centrally. So my guess is that you're stuck with versioning and sending out patches and upgrades as any other software vendor has done for ages. At least thats my take on it...--Lumbago"Real programmers don't document, if it was hard to write it should be hard to understand" |
 |
|
christof
Starting Member
1 Post |
Posted - 2006-11-02 : 20:01:41
|
quote: Originally posted by Sitka http://www.db4o.com/about/productinformation/"it's definitely useless and maybe harmful".
Yes, it's surely harmful for people who want to stay in the office late rather than going home at five, because they eliminate most of the work to access the database from .NET when using db4o.Have you worked with it?See what users say about it and what awards have been won:http://developer.db4o.com/blogs/kudos/default.aspxand which customers (Boeing, Intel, Seagate etc.) use it:http://www.db4o.com/about/customers/ Cheers,Christof |
 |
|
Sitka
Aged Yak Warrior
571 Posts |
Posted - 2006-11-02 : 23:19:23
|
the useless and harmful quote applies to mostly everything,not ODBMS specifically."it's definitely useless and maybe harmful". |
 |
|
byrmol
Shed Building SQL Farmer
1591 Posts |
Posted - 2006-11-03 : 01:56:08
|
From http://developer.db4o.com/blogs/kudos/default.aspxquote: Simply because there is no database schema or in other words: the database schema reflects what I have in my model.
Shudder.....DavidMProduction is just another testing cycle |
 |
|
henrikop
Constraint Violating Yak Guru
280 Posts |
Posted - 2006-11-03 : 02:48:08
|
This is going off topic fast.@byrmol: I'm always laughing at your replies because their aussie and funny.But how does a lack of database schema (mine in my software has no SQL server schema, but it's own) makes you sudder.It's time to wake and open up . Traditional schema's can be very robust and brings you advantages like performance and integrity. But at the other side: Are as flexibel as granite. If you are building software to serve the business some things are meant to be solid, but a lot of things aren't. For example: Processes as a form (=model) are always the same. Everything can be caught in a process. But the execution, data needs etc. change per customer. If you want to do HRM (like PeopleSoft does) business has to change to work with the software. I believe the software has to change for the business.A lot of programmers/consultants tend to think that processes exists when they written down by customers after questions of consultants. They aren't. Processes existed and evaluated when the business started. They evolved and are build up in years. Changing them is a big change.One model will not suit all HRM needs, therefor, the model should be flexibel per customer. And in SQL the model is solid. In real live the model isn't. Therefor I believe that having no database schema doesn't have to be folly. (of course there's a schema for the basics and yes: having no schema has disadvantages).So how can we keep track of changes between databases and syncronize them without changing other things which are changed by the customer themselves...Henri~~~~There's no place like 127.0.0.1 |
 |
|
byrmol
Shed Building SQL Farmer
1591 Posts |
Posted - 2006-11-03 : 04:53:29
|
>>This is going off topic fast.Sorry about that. But trying to convince "thinking" people that a product is good just because a couple of fan boys and big shiny corporations use it, does not sit well with me.Your problem can be stated thus....I have deliberatley lost control of my database schema. How do I bring it under control.Nasty paradox it seems.The key to regaining control IMO is to gain TOTAL control of the "changing process". I would consider building into the application its own "source control" mechanism to track schema changes. Make it capable of spitting out the changes back to you... quote: One model will not suit all HRM needs, therefor, the model should be flexibel per customer. And in SQL the model is solid. In real live the model isn't.
If we assume that "flexibility" is measured as the time it takes for an idea to move from development to production, then in all the applications I have ever seen, the database tier is the fastest, less bug prone and most efficient component to change.DavidMProduction is just another testing cycle |
 |
|
henrikop
Constraint Violating Yak Guru
280 Posts |
Posted - 2006-11-03 : 05:17:41
|
Thx David for your clear response!I agree on the "fan boys" statement. It's like SAP. Worldleader in ERP but a hell for companys who almost went bankrupt. quote: If we assume that "flexibility" is measured as the time it takes for an idea to move from development to production, then in all the applications I have ever seen, the database tier is the fastest, less bug prone and most efficient component to change.
Agree on that one too. But because of the existing way of working of company our standard template doesn't fit their needs. The datamodel after consultancy for one company is different to another. The way they work with absence, lease-cars, articles ownt by employees, and so on. One client wanted to work with locations, without us developing any code, he could make them, add adresses, processes, maintainers and such. I don't want to force customers working the way *we* do, with our help they can work the way the've always done but with a lot of more information at their fingertips. quote: The key to regaining control IMO is to gain TOTAL control of the "changing process". I would consider building into the application its own "source control" mechanism to track schema changes. Make it capable of spitting out the changes back to you...
Is a good suggestion. I will try to work this out.BTW: I freakin' love Australia. Once I can sell my company I change my polution here for the space and clear air and "no worries" mentality there . Jindabyne is a good place for me!Henri~~~~There's no place like 127.0.0.1 |
 |
|
byrmol
Shed Building SQL Farmer
1591 Posts |
Posted - 2006-11-03 : 06:07:05
|
No worries Henri.If its skiing your after, I recommend the South Island of New Zealand. It's actually cheaper for a lot of Australians to ski in NZ...DavidMProduction is just another testing cycle |
 |
|
henrikop
Constraint Violating Yak Guru
280 Posts |
Posted - 2006-11-03 : 06:40:05
|
Ah, I was one year Down Under in '95/'96 and worked in the Sundance bakery in Jindabyne. I had -so to speak- The time of my life. Working in the bakery at night, snowboarding my ass off by day. I was in Jindabyne in summer as well, swimming the lake and hiking. If I do settle I'd probably choose Perth, or somewhere north of Brisbaine. (I just don't like the weather in Holland)Henri~~~~There's no place like 127.0.0.1 |
 |
|
rockmoose
SQL Natt Alfen
3279 Posts |
Posted - 2006-11-03 : 16:46:17
|
henrikop, if you are on a payroll...I suggest you start a consultancy, this looks like a golden opportunity This fix is going to take unlimited time.rockmoose |
 |
|
|