Hello everyone,

I wanted to show you the first draft of my first datebase design and get some feedback and sugestions.

I'm no DB expert but read what I can on the subject. I have many questions and rest assured your sugestions will help a lot.

You'll see more or less what I want to do with this DB. I haven't decided on all the features I'll be offering on the site but for starters this is the data that I'm sure I'm going to need.

Please Click Here to see a snapshot of what I have so far. It is a big image so bare with me.

  • Is this a reasonable DB structure?
  • Can it be optimized?
  • Note the project invoice (pInvoice) for example. Is it logical to have a column that references the parent project (pid), parent client (cid), parent user (uid)?
  • How far should one go when distributing data into different tables, I know I could also have a table with countries and another table with cities and reference those from the "user" table for example. Is that worth the effort or would I be making it all just that much more complicated?
  • I thought having references to paretn objects like uid or cid would speed up and make it simpler to find who a particular, say, invoice belongs to. Is this right?

Thank you all for your time and help.