I am working on an ERD which represents the relationships between entities in a Web development company behavioral model. There I have entities like:

  1. Customer
  2. Service ----------- (like: web development, web design, web consultation, ...)
  3. Order-item ------- (like: web development, web design, web consultation, ...)
  4. Order
  5. Invoice
  6. Project
  7. Project-phase
  8. Task --------------- (like: web development task3, web design task7)
  9. Developer
  10. Delivery ----------- (like: the developed web app, web consultation session, ...)

I have this diagram so far, though I know it still has major problems, and it is just for a start point:


Main concept

  • Customer makes order-items on services, combined to form an order which relates to an invoice.
  • Each project has multiple project-phases with each project-phase related to an order.
  • Each project-phase has multiple tasks, each of which is assigned to a developer.
  • Each project-phase has a delivery, which will be delivered upon payment of the related orders invoice.


  1. Are has and contains completely the same? If not, how to choose between them for relationships?! what is the measure?!
  2. Are there any rational problems with the Main concept section?
  3. Any helpful ideas or suggestions to improve this model?

Any help with this, would be really appreciated.


Final version of the diagram




Browse other questions tagged or ask your own question.