How to store Segments?

How to store Segments?

Hi all

We need to assign Accounts into Segments to work with them. 

- The segments can OVERLAP i.e. insurance companies are in Trucks - Insurance, Fleet - Insurance, Supplier segments.
- There are MORE THAN 15 segments i.e. multi-value field is not a viable solution for this.
- Because of segments' overlaps also the dependency between two fields e.g. Segment and Subsegment is not a solution as parent in the dependency cannot be a multi-value field.

It would be ideal to have a separate "Segment" entity with N:M relationship to "Account" entity but I have no value how to handle it.

Any suggestions really welcome