I need help with a design question using Entity Framework 6.1.3 from a Code-First perspective.

We have tables called "Businesses", "People", and "PhoneNumbers". A business can have one-to-many phone numbers and person can have one-to-many phone numbers. I'm struggling to determine the best way to implement this. The following solutions have been explored but neither strikes me as being the "obvious" solution. Can you please offer advice?

1. Use a common Phone table to hold numbers for the Business and People.

In this solution, the Phone table would have RI to the People table and to the Business table. The ID fields would be nullable so that when it is a business phone, the participant ID would be null and vice-versa:

```
public Nullable<int> ParticipantID { get; set; }
public Participant Participant { get; set; }

public Nullable<int> BusinessID { get; set; }
public Business Business { get; set; }

```
2. Create separate tables for the Business (BusinessPhone) and Person (PersonPhone) phone numbers. Both phone tables could inherit from the original phone table but each would have separate RI statements to the corresponding Business or Person. This way, neither table would need a nullable key.

For example, the PersonPhone table would look something like:

```
public class PersonPhone : Phone
{
    public int ParticipantID{ get; set; }
    public Participant Participant { get; set; }
}

```

Are either of these solutions best practice? Is there a better solution? What do you recommend?