Question

Aidez-moi à définir les relations de table pour les données avec plusieurs structures. Je dois suivre des pistes. Leads proviennent de plusieurs sources. Chaque source de plomb a sa propre structure de données. Je besoin de conseils représentant cela dans une base de données relationnelle.

Chaque enregistrement de la table « Liste des produits vendus » (défini ci-dessous) a une source de plomb. Les fils peuvent provenir d'organisations, médecins, Bureau entreprise et employés de la Société. Voici les différents types de données qui constituent un plomb.

TABLE Organization:
   - Name -- TEXT

TABLE Doctor:
   - NPI# -- INTEGER (unique for each doctor. I planned on using this as primary key)
   - FirstName -- TEXT
   - LastName -- TEXT

TABLE Company Office:
   - Location -- TEXT

TABLE Company Employee:
   - Department
      -- one of {Sales, Technician, QA}. Note that the employee is not tied to an office.
         Office leads are leads that come from misc office staff at the various locations.
   - FirstName
   - LastName

Here is TABLE Products Sold List:
   - [misc fields]
   - PrescribingPhysicianNPI > many-to-one > Doctor.NPI
      -- "doctor that prescribed the product for the patient"
   - SalesRep > many-to-one > [Company Employee].PrimaryKey
      -- "Sales Rep credited for the sale. Needed for commissions calculation"
   - LeadSource > ???

Informations Divers:

La société offre des incitations aux prospects (commission d'affiliation) et des incitations au personnel de vente (commission de vente). Leads provenant d'organisations et bureaux de la Société ne sont pas payés commission d'affiliation. J'envisage la fusion TABLE Company Bureau dans l'organisation TABLE et en utilisant « Bureau - » que les données pour suivre les différents bureaux (i.e. .: Organization.Name = « Bureau - Cincinnati »). Mauvaise idée? Questions?

Était-ce utile?

La solution

Cela pourrait forcer un peu de changement pour vos tables, mais nous quelque chose comme ça au travail:

Vérifiez que chaque table a une clé primaire int / guid de quelque sorte:

Organisation Tableau

ID | Name
1  | MyOrganization

Ensuite, créez un type table pour accueillir vos différents types de LeadSource:

LeadSourceTypeKey | Description
1                 | Organization
2                 | Company Office

Ensuite, sur votre table ProductSoldList ajouter 2 colonnes LeadSourceID et LeadSourceType

Ensuite, vous pouvez facilement interroger la table ProductSoldList et de savoir qui LeadSource à se joindre à retourner à:

SELECT *
FROM   [ProductSoldList] PL
       INNER JOIN [Organization] O
       ON PL.LeadSourceID = O.ID AND
          PL.LeadSourceType = 1
       INNER JOIN [Company Office] CO
       ON PL.LeadSourceID = CO.ID AND
          PL.LeadSourceType = 2
Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top