As shown below, in multiple places in my DB Design I am creating tables for "options" if you will. Example, RFP Stages. Which would hold things like "Complete", "Bidding", etc.

I'm doing this because it was recommended to me at one point in a question that was deleted. Is this the proper way to do this? Or should I just store these options as text, given there is only 5 or so possibilities?

enter image description here

enter image description here


If I interpret your question correct. I think you have at least 4 alternatives.

  1. ENUM https://www.postgresql.org/docs/current/datatype-enum.html
  2. Table lookup
  3. Local lookup
  4. Plain Text

Personally I prefer table lookup with id and name. You store only the ID. So you have to join tables when fetching. It is easier to add or delete options. And it is easier to search for status 1. And the footprint will be smaller.

  • What's a "local lookup"? – a_horse_with_no_name Apr 23 '19 at 8:41
  • 1
    At client side, you can do a list (php or similar) that you lookup and select from. I use this when the options are static. – sibert Apr 23 '19 at 9:35
  • Or a Variable List you import into React would be an example of local lookup, something I considered but this seemed like a better practice. – Matt Weber Apr 23 '19 at 15:10
  • 1
    @MattWeber I treat local lookup exact like a table lookup with id and name. – sibert Apr 23 '19 at 15:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.