Modeling customer/supplier roles

Hi there,

I’m trying to decide the best approach for a
person/company/customer/supplier model.
I researching about STI and polymorphic associations, but cant decide
which
way to go.

  • Companies and persons can be, at the same time, customers or
    suppliers.
    They can have many roles.
  • Company and person share many basic information (addresses,
    telephones,
    emails, etc).

Any advices?

Thanks in advance,
Leandro

On Mar 24, 2015, at 8:04 AM, Leandro França
[email protected] wrote:

Any advices?

Don’t make customers & suppliers separate models/tables. Make them
attributes of a single model. It seems that EVERY
business/accounting package on earth makes this same mistake. For
anybody in a “broker” type business line, where it’s common to both buy
& sell from the same companies, this is a huge annoyance.

As for company vs person, I don’t have a terribly strong opinion to
offer about 1 model with attribute vs 2 models with inherited base.


Scott R.
[email protected]
http://www.elevated-dev.com/
https://www.linkedin.com/in/scottribe/
(303) 722-0567 voice

On Mar 24, 2015, at 8:08 AM, Scott R. [email protected]
wrote:

On Mar 24, 2015, at 8:04 AM, Leandro França [email protected]
wrote:

Any advices?

Don’t make customers & suppliers separate models/tables. Make them attributes of
a single model. It seems that EVERY business/accounting package on earth
makes this same mistake. For anybody in a “broker” type business line, where it’s
common to both buy & sell from the same companies, this is a huge annoyance.

As for company vs person, I don’t have a terribly strong opinion to offer about
1 model with attribute vs 2 models with inherited base.

Hit send too quickly…

You may not even want companies designated via attributes as customer or
supplier. You may just want companies, and let the transaction history
tell you who’s a customer and who’s a supplier, as that can change at
any time.


Scott R.
[email protected]
http://www.elevated-dev.com/
https://www.linkedin.com/in/scottribe/
(303) 722-0567 voice

Hey Scott, thanks for your quick reply.

I’m inclined to think 2 models with inheritance base for Person/Company,
using STI.
Altho it would be good to associate a person with a company.

About supplies and customers, I think I cant rely only on transaction
history.
Many customers for example only have maintenance contracts which will
not
be registered in this system.
But I need to know they are customers if they open a support ticket or
to
send a satisfaction survey, for example.

Em terça-feira, 24 de março de 2015 11:11:13 UTC-3, Scott R. escreveu: