This is a simple supertype-subtype issue which you can solve at 5NF, you do not need EAV or improved EAV or 6NF (the full and final correct EAV) for this. Since the value of ServiceAColumn is dependent on the specific subscriber's subscription to the service, then it has to be in the Associative table.
▶Normalised Data Model◀ (inline links do not work on some browsers/versions.)
Readers who are not familiar with the Relational Modelling Standard may find ▶IDEF1X Notation◀ useful.
This is an ordinary Relational Supertype-Subtype structure. This one is Exclusive: a Service
is exclusively one Subtype.
The Relations and Subtypes are more explicit and more controlled in this model than in other answers. Eg. the FK Relations are specific to the Service
Subtype, not the Service
Supertype.
The Discriminator, which identifies which Subtype any Supertype row is, is the ServiceType
. The ServiceType
does not need to be repeated in the Subtypes, we known which subtype it is by the subtype table.
Unless you have millions of Services
, a short code is a more appropriate PK than a meaningless number.
Other
You can lose the Id
column in SubscriberService
because it is 100% redundant and serves no purpose.
the PK for SubscriberService
is (SubscriberId, ServiceId)
, unless you want duplicate rows.
Please change the column names: Subscriber.Id
to SubscriberId
; Service.Id
to ServiceId
. Never use Id
as a column name. For PKs and FKs, alway use the full column name. The relevance of that will become clear to you when you start coding.
Sixth Normal Form or EAV
Adding columns and tables when adding new services which have new attributes, is well, necessary in a Relational database, and you retain a lot of control and integrity.
If you don't "want" to add new tables per new service then yes, go with EAV or 6NF, but make sure you have the normal controls (type safety) and Data and Referential Integrity available in Relational databases. EAV is often implemented without proper Relational controls and Integrity, which leads to many, many problems. Here is a question/answer on that subject. If you do go with that, and the Data Models in that question are not explanatory enough, let me know and I will give you a Data Model that is specific to your requirement (the DM I have provided above is pure 5NF because that is the full requirement for your original question).