2009-04-27 6 views
3

J'espère que quelqu'un (ou certaines personnes) pourrait nous aider avec un problème que nous avons discuté pendant quelques jours. Comment organiser nos objets de gestion compte tenu du diagramme ci-joint?Société et contacts Aide à la conception d'objets

Nous sommes à la recherche d'aide (idées sur la recherche d'un ou plusieurs modèles de modèles que nous pourrions utiliser pour résoudre ce problème.) Notre situation est légèrement plus complexe, mais nous avons essayé de simplifier notre mieux aux fins de poser cette question

Quelques détails:. certaines entreprises ont des gammes de produits et d'autres ne le font pas
Chaque entreprise a une liste de contacts Si une entreprise a.. Au moins une ligne de produits, certains de ces contacts d'entreprise sont AUSSI associés à au moins une ligne de produits
Quelques-uns des contacts sont des références (professionnelles/personnelles) pour d'autres contacts
Chaque entreprise et chaque contact peuvent avoir zéro ou plusieurs adresses.

Nous vous remercions de toute aide pour trouver une solution plus appropriée (mon hypothèse est que nous devrons utiliser plusieurs modèles/modèles).

Entity Diagram

Larger view of diagram (flickr.com)

** (du diagramme) Notre entreprise a des employés/utilisateurs d'applications internes qui sont inclus avec des contacts, car ils peuvent aussi être des références, etc.

+0

qu'est-ce que vous essayez exactement de faire? une base de données? – marcgg

+0

Quel est le problème avec cela? Cela semble très bien. –

Répondre

0

Si vous êtes essayer de dessiner une base de données, je le ferais de cette façon:

Companies = [id, name] 
Contacts = [id, name] 
Products = [id, name] 
Adresses = [id, details] 

CompaniesContacts = [contact_id, company_id] 
CompaniesProducts = [product_id, company_id] 
AdressesContacts = [contact_id, address_id] 

References = [contact_id, referenced] // referenced is also a contact_id 

Aussi, je recommande d'utiliser UML. C'est juste une réponse rapide, essayez de mettre à jour votre question et je la mettrai à jour un peu.

+0

La base de données est ancienne et ne peut pas être modifiée à ce stade. Nous essayons de créer des objets de gestion Nous espérions trouver quelqu'un qui aurait pu rencontrer un modèle de conception éprouvé ou deux (ou des modèles d'objet éprouvés) pour cela. Le diagramme de flux était plus simple dans la conception - nous ne voulons pas proposer des solutions juste le problème/question –

0

Nous avons une structure similaire dans notre application et cela fonctionne bien pour nous. Nous avons deux tables supplémentaires

Nous avons le concept de sites entre l'entreprise et les adresses les gens peuvent être attachés à un ou plusieurs sites dans notre schéma et cela permet d'économiser des milliers d'adresses dupliquées. Vous pouvez également référencer l'adresse du client directement dans un carnet d'adresses.

Où stockez-vous vos coordonnées?

+0

u07ch, merci. Les tables semblent être en bonne forme (correctement normalisées). Notre préoccupation concerne principalement le domaine objet métier de notre projet. –

1

Vous pouvez utiliser le modèle d'objet suivant:

Organization 
-id 
-name 
-description 
-productLines (collection object consisting of products) 
-orgcontacts (collection object consisting of contacts) 
-addresses (of type Address, can be a collection depends on business rule) 

Contact 
-id 
-name 
-type (Business, personal, etc) 
-parentID (null if no reference) 
-adresses (Address or collection) 

ProductLine 
-id 
-name 
-prLineContacts (collection object consisting of contacts) 

Vous pouvez construire sur ce modèle de base que je peux penser. Avez-vous un schéma de données? Si c'est le cas, vous devez décider par où commencer. Certaines personnes aiment le mappage 1-1 entre leur objet et leur modèle de données et certains veulent concevoir leur schéma de données en fonction des performances, puis disposer d'un autre mappage d'abstraction entre les objets et la base de données.