I am designing a datamodel for a new project.
One of the requirements specifies that some objects can point either a person or a company.
What is the sma
This is a classic case of classes/subclasses (or, if you prefer types/subtypes). I suggest you visit the following three tags and look over both the tagged questions and also the tag wiki you can see under "learn more".
single-table-inheritance class-table-inheritance shared-primary-key
This may give you all the answers you need. Or you may prefer to add one or more of these tags to your question, so as to attract more answers.
Note: the reason the word "inheritance" is used in the tags is that these techniques allow you to gain some of the benefits that are built into object environments that implement inheritance.