web-dev-qa-db-fra.com

Conception de la base de données: 4 types d'utilisateurs mais ont une fonctionnalité différente, séparée ou une table?

J'ai 4 types d'utilisateurs:

Admins, normal user, company, service provider

Les administrateurs et l'utilisateur normal partagent certains attributs (id .first name ,last name ,phone ,mail) La société et le fournisseur de services partagent également certains attributs (id .company name ,phone ,fax ,mail).

Ils interagissent également avec d'autres entités en application pour accéder à certaines fonctionnalités telles que le poste de poste ou l'événement ou appliquer pour cela.

Est-il préférable de les mettre dans une seule table d'utilisateurs comme Tbl_USers ou est-il préférable de créer une table séparée à chaque fois? ou ajouter à deux tables une pour (admintes et utilisateur normal) et autre pour (entreprise et fournisseur de services)

3
ramyMorad

Si vous conservez les tables séparées, vous risquez de faire face à des problèmes avec une intégrité référentielle si les deux utilisateurs de type interagissent avec les mêmes données, mais vous ne voulez pas que vous ne voulez pas des nulls inutiles dans votre table d'utilisateurs, ce que je suggérerais de créer une table d'attributs d'utilisateur distincte pour un utilisateur non courant. les attributs

sO 1) TBL_USER contient toutes les colonnes communes avec le drapeau pour spécifier le type d'utilisateur 2) TBL_AdminaTribute Contient un utilisateur associé + Extra Fild 3) Tbl_companyattribute Contient un ID utilisateur associé + Extra Fild 4) Tbl_ServiceProvideraTribute Contient

J'espère que cela a du sens

1
mouliin