3

I am trying to model a database consisting of different entities that need to be authenticated through a login system. Let's assume to have two separate entities (Seller and Manager) just like this image: conceptual model

as you can see both of them have (only) one account identified by the primary key username. I would like to be able to identify one role by its username, so that my system recognises what to do. If we translate this conceptual model in the physical one the resulting model is the following: physical model

Is this actually correct?


Update: I translated in english all my entities and decided to upload my physical model here in order to explain why i made this user-centric:

physical model

My users are:

  • SystemAdministrator
  • Owner
  • Seller

basically these three roles have logical connection with other entities, how can i keep these logical connections and still have a valid account table (for username, password... info)?

Thanks in advance and best regards.

  • A future visitor my find of help the (conceptual and logical) design principles described in answer no. 1 and answer no. 2. – MDCCL May 25 '18 at 13:51
1

I don't think you should make tables to represent Roles (User, Manager, Seller, etc) I think you could implement something more scalable like this:

enter image description here

Completely forget about the "user-centric" model and think to a lower level, Individuals. Individuals can have any number of Accounts and Accounts can have any number of Roles. Individuals can be represented on any number of abstractions around the database or even across databases.

What do you think?

  • 1
    Your representation makes sense and it's way more abstract than mine. By the way, i have updated my question with the project scope and tried to explain why i made it user-centric as you mentioned - it's because i wanted to keep a logical view between my business entities. Would you mind having a look on the updated question? Thanks for your help! – Jertlok Jan 18 '18 at 17:24

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.