Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 6 of 6 total
Thread DBISAM Server Database Definitions
Wed, Oct 12 2016 9:31 PMPermanent Link

Shedden

Hi All,

Suppose I have two companies, C1 and C2 that each have their own databases on the DBISAM server machine. Database DB1 points to tables in a DB1 folder and likewise for DB2. The permissions are set up to isolate the two companies data access. The client application is identical for both companies and has a command line parameter to resolve which database it should use. C1 users have remoteDb=DB1, C2 users have remoteDb=DB2.

If company C1 and C2 merge, can I merge the table data from folder DB2 into folder DB1, and then change the DB2 database "pointer" to the DB1 folder (I now have two database definitions in the server admin pointing to the same folder). I then grant access to the C2 users to DB1.

If this is possible, I could merge the two companies seamlessly in the background without having the C2 clients edit their command line parameters.

Does anyone forecast any issues with this?

Thanks in Advance!

Jim Shedden
Thu, Oct 13 2016 1:55 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Shedden


Before its possible to answer that question in any way other than - yes you can write code to do that - we need to know the structure and relationship of the tables.

Possible problems:

1. duplicated record keys
2. deduplicating data
3. kicking everyone off C1 & C2 while you do it

1. can mean that you have to go through the database and alter the primary key for all master tables and make sure those keys are used as the foreign key in any linked tables

2. you have to figure out some way of either positively identifying duplicates (eg for a customer table it might be company name, phone number and address) and merging them and subsidiary data or flagging potential duplicates for user action.

Roy Lambert
Thu, Oct 13 2016 10:39 AMPermanent Link

Shedden

Hi Roy,

Thank you for your prompt response and very important reminders.

For this discussion, assume that C1 has only Region1 data and C2 has only Region 2 data with the region being part of the primary key for all tables. The records can merge without conflict. I usually hash a largeInt primary key with a region code, month code, and questionnaire number. I can look at a single field in a record and tell at least where and when it was recorded. This also helps to prevent collisions that can occur when questionnaire numbers are reused. The data originates from other systems that will cause this to happen but not within the same region for several months.

To better ask the question, is there any issue with the server having two database aliases pointing to the same data set?  Would it have any concurrent access issues that I might not be considering?

Some of the end users don't consider themselves computer literate and get nervous when asked to make even a simple configuration change. This would be a temporary solution that would be transparent to them. They would all just see more data, which always makes them happy!

Thanks again!

Jim Shedden
Thu, Oct 13 2016 11:16 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Shedden


>To better ask the question, is there any issue with the server having two database aliases pointing to the same data set? Would it have any concurrent access issues that I might not be considering?

That I have no idea of. I never used c/s when I was using DBISAM. I think that since in DBISAM a database was simply a file path and its multi user you should be OK.

Roy
Thu, Oct 13 2016 1:00 PMPermanent Link

Raul

Team Elevate Team Elevate

On 10/13/2016 10:39 AM, Shedden wrote:
> For this discussion, assume that C1 has only Region1 data and C2 has only Region 2 data with the region being part of the primary key for all tables. The records can merge without conflict. I usually hash a largeInt primary key with a region code, month code, and questionnaire number. I can look at a single field in a record and tell at least where and when it was recorded. This also helps to prevent collisions that can occur when questionnaire numbers are reused. The data originates from other systems that will cause this to happen but not within the same region for several months.
> To better ask the question, is there any issue with the server having two database aliases pointing to the same data set?  Would it have any concurrent access issues that I might not be considering?

That should be fine since DB is just a logical construct to provide
folder access.

We have used this ourselves with 2 database names mapping to same folder.

Raul
Mon, Oct 17 2016 12:52 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

James,

Sorry for the delay in responding - I missed this question last week.

<< To better ask the question, is there any issue with the server having two database aliases pointing to the same data set?  Would it have any concurrent access issues that I might not be considering? >>

Yes, that will be fine, and DBISAM can manage that without issue.

Tim Young
Elevate Software
www.elevatesoft.com
Image