Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 692295
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T02:38:09+00:00 2026-05-14T02:38:09+00:00

I am doing short-term contract work for a company that is trying to implement

  • 0

I am doing short-term contract work for a company that is trying to implement a check-in/check-out type of workflow for their database records.

Here’s how it should work…

  1. A user creates a new entity within the application. There are about 20 related tables that will be populated in addition to the main entity table.
  2. Once the entity is created the user will mark it as the master.
  3. Another user can make changes to the master only by “checking out” the entity. Multiple users can checkout the entity at the same time.
  4. Once the user has made all the necessary changes to the entity, they put it in a “needs approval” status.
  5. After an authorized user reviews the entity, they can promote it to master which will put the original record in a tombstoned status.

The way they are currently accomplishing the “check out” is by duplicating the entity records in all the tables. The primary keys include EntityID + EntityDate, so they duplicate the entity records in all related tables with the same EntityID and an updated EntityDate and give it a status of “checked out”. When the record is put into the next state (needs approval), the duplication occurs again. Eventually it will be promoted to master at which time the final record is marked as master and the original master is marked as dead.

This design seems hideous to me, but I understand why they’ve done it. When someone looks up an entity from within the application, they need to see all current versions of that entity. This was a very straightforward way for making that happen. But the fact that they are representing the same entity multiple times within the same table(s) doesn’t sit well with me, nor does the fact that they are duplicating EVERY piece of data rather than only storing deltas.

I would be interested in hearing your reaction to the design, whether positive or negative.

I would also be grateful for any resoures you can point me to that might be useful for seeing how someone else has implemented such a mechanism.

Thanks!
Darvis

  • 1 1 Answer
  • 1 View
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T02:38:09+00:00Added an answer on May 14, 2026 at 2:38 am

    I’ve worked on a system like this which supported the static data for trading at a very large bank. The static data in this case is things like the details of counterparties, standard settlement instructions, currencies (not FX rates) etc. Every entity in the database was versioned, and changing an entity involved creating a new version, changing that version and getting the version approved. They did not however let multiple people create versions at the same time.

    This lead to a horribly complex database, with every join having to take version and approval state into account. In fact the software I wrote for them was middleware that abstracted this complex, versioned data into something that end-user applications could actually use.

    The only thing that could have made it any worse was to store deltas instead of complete versioned objects. So the point of this answer is – don’t try to implement deltas!

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm trying to create a short term overlay notification for an app I'm working
I am trying to make an alias called File Search (fs) for short. That
In short, I'm doing 2-way SSL and the client certificate is used to identify
I a doing a weird project, and looking to convert some short, simple datagrams
Doing an ajax get request works as expected using the following code: $.ajax({ type:
I work on a Joomla web site, installed on a MySQL database and running
Please what's the term for methods that alter the contents of a variable, while
Joomla 1.5 will reach the end of its life in a short term and
Has anyone seen this type of IE display problem? Example http://xs133.xs.to/xs133/08465/ie_problem910.jpg.xs.jpg Note that it
I'm doing a short project just to experiment writing without the use of nib

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.