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 8528433
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 11, 20262026-06-11T08:48:01+00:00 2026-06-11T08:48:01+00:00

I have just started a new database project to price customer bid proposals: Some

  • 0

I have just started a new database project to price customer bid proposals:

Some of the tables in the database will contain information that is regularly updated say for example the pricing tables.

Now new bids should always use the latest information on the database, however existing bids should continue with the data used when they started unless the bid author decides otherwise.

Matters are somewhat simplified as a bid will under no circumstances use prices across versions so even if a product was coasted and available on an older version of the pricing table, it will not be available to newer projects.

In order to achieve this I am planning to include a version column and perhaps a linked version control table. I think this will be enough.

However I feel like this must be a common database design requirement and thus there must be existing “best practices” and techniques to achieve this so I’d rather build on existing experience than poorly reinvent the wheel.

Any advice on how to resolve this problem? Also I am working with the Grails platform so any Grails specific information would be much appreciated.

I’m not sure I explained my problem correctly so here is an example:

class Bid { // Each new customer bid is stored in this table
    String bidName
    static hasMany = [ item: ItemList ]
    static belongsTo = [ versionNumber: VersionControl]
}

class ItemList { // Products/Services are associated with a bid via this table

    String description
    static belongsTo = [ bid: Bid, item: Price ]
}

class Price { // The price of individual products and services the company offers
    String description
    Long value

    static belongsTo = [ versionNumber: VersionControl]
}

class VersionControl { 
/** So that when filling in the ItemList form for a bid, I can query for only 
*   prices with the correct version number 
*/

    String user
    Long versionNumber
    Date timestamp

    static hasMany = [ bid: Bid, productOrService: Price ]
}

This example works fine, and illustrates what I want to do. I just don’t know if it is the best way to address the problem and how well it will scale – I have around 20 tables containing different parameters who’s versions I need to keep track of.

A bid will always be assigned the latest version of a pricing list, but the user must have the ability to be able to select a different version.

I should probably mention that prices will be updated in bulk, not individually, using a csv file provided by the accounting department. Each csv represents a new discreet price list version, not just as far as the database is concerned, but from an internal management perspective.

A similar philosophy will affect other tables in the DB such as exchange rates to use or geographical regions where the company operates.

The regularity with which new versions are released is also hard to predict which could make determining the endDate a problem.

  • 1 1 Answer
  • 0 Views
  • 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-06-11T08:48:02+00:00Added an answer on June 11, 2026 at 8:48 am

    There is no special Grails support for this goal, this is simly a 4th normal form. In your case it will be a header table for price entity and a subtable for value in time with limits:

    class Price {
    
        static hasMany = [ values: PriceValue ]
    
    }
    
    class PriceValue {
    
        Number amount
        Date validFrom
        Date validTo
    
        static belongsTo = [ price: Price ]
    
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have just started a new project, and I am using the Delphi 2009
I have just started learning Jquery and am new to writing javascript (I am
I am new to NHibernate and have just started right now. I have very
we have just started using a git account of our Django website project so
I have just started implementing ISet 's instead of IList 's in my project
I've just started using a VS2010 database project to manage the release of an
I have just started working with a new company in a very small IT
I'm getting started on a new MVC project where there are some peculiar rules
I've just started to implement EF CTP 5 in to a new project. In
I've just started a new job where I'm going to have to do a

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.