Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Questions and considerations to ask client for designing a database

so as title says, I would like to hear your advices what are the most important questions to consider and ask end-users before designing database for their application. We are to make database-oriented app, with special attenion to pay on db security (access control, encryption, integrity, backups)... Database will also keep some personal information about people, which is considered sensitive by law regulations, so security must be good.

I worked on school projects with databases, but this is first time working "in real world", where this db security has real implications.

So I found some advices and questions to ask on internet, but here I always get best ones. All help appreciated! Thank you!

like image 351
Julia Avatar asked May 26 '10 16:05

Julia


3 Answers

Some other specifics besides what has already been said:

  • Do you have any Regulatory requirements for data access and storage (Sarbanes-Oxley and HIPAA come to mind)
  • Do you need to be able to audit record changes
  • What internal controls do you need reflected in the database
  • What business rules must be followed under what circumstances
  • How large to you expect the data to get - the larger the data store expected the more critical to design with performance in mind from the start
  • How flexible do you want the system to be (do you want to be able to add columns on the fly? OR add business rules) Be careful with this one, make sure the client understands that flexibilty often comes at the cost of performance.
  • Do you need a separate data warehouse for reporting?
  • How do you need the data populated? Will it come from an application, multiple applications, data imports or a combination?
  • What databases do you currently have license for? Do you want to have this application use it?
  • Will different groups of users need different accesses?
  • How is the process currently being handled, can we have access to that database or see the current process in action. Observe, for a minimum of one day, the client using the current system. Take extensive notes, you will learn many things no one will think to tell you.
  • Do you need to migrate data from the old system
like image 102
HLGEM Avatar answered Nov 03 '22 08:11

HLGEM


i would start with:

  • Please explain your business to me.
  • Which processes are you looking to automate or improve?
  • Do you have any reports you need to generate?
  • Do you need inputs to any other systems?
like image 21
Randy Avatar answered Nov 03 '22 06:11

Randy


  • use cases (google for that, it does not need to be drawings, text is fine)
  • inputs
  • outputs
  • static data
  • historical data

From there you derive the info you need to store, you apply 4th NF, and go ! Good luck ! 8-))

like image 41
iDevlop Avatar answered Nov 03 '22 07:11

iDevlop