Jump to content
SaranacLake

Entitlement table

Recommended Posts

If I said that my database has an "Entitlement" table, what purpose would you expect that to serve?

(Hint: Not a trick question, but rather trying to see how people use terms and their meanings.)

 

 

Share this post


Link to post
Share on other sites

My guesses would be

  1. A register of Dukes, Duchesses, Earls, Countesses, Barons and Knights and any other titled personnel
  2. A table defining access rights to products/services for users
  3. A table defining leave entitlement for employees

Share this post


Link to post
Share on other sites
58 minutes ago, Barand said:

My guesses would be

  1. A register of Dukes, Duchesses, Earls, Countesses, Barons and Knights and any other titled personnel
  2. A table defining access rights to products/services for users
  3. A table defining leave entitlement for employees

Since I'm in the U.S.  and we only have one king here, #1 doesn't apply.

Yes, #2 is close.

Okay, so on to my question...

I picked up the term "entitlements" from work where I am often told to call the help desk and request OIM entitlements for a given enterprise system.

So I applied that concept to my website since I didn't have a good name for it.

Over the last week or so I built a fancy ERD modeling tables related to people subscribing to my website and thus getting access to things.

Without posting all the intimate details of my data model, let me say that I create an "Entitlement" table which linked MEMBERSHIP_PLAN to SITE_FEATURE which is a many-to-many relationship.

Does that sound like a reasonable use of the term "Entitlement"?

Then as part of that, I also needed a way to link MEMBERS to MEMBERSHIP_PLANS and I did that with a "Subscriiption" table.

Does that sound okay?

The reason for starting this thread is second-guessing myself?!

One could argue that a MEMBER has an ENTITLEMENT to a given MEMBERSHIP_PLAN, right?

If you agree, then it is almost like there is a need for two Entitlement tables, although I am comfortable with my SUBSCRIPTION table.

Thoughts?

 

Share this post


Link to post
Share on other sites

So long as the name is meaningful, describing the entity or relationship contained in the table, then that's all that matters.

Share this post


Link to post
Share on other sites
1 minute ago, Barand said:

So long as the name is meaningful, describing the entity or relationship contained in the table, then that's all that matters.

But do you think that ENTITLEMENT applies more to the relationship between MEMBER and MEMBERSHIP_PLAN or between MEMBERSHIP_PLAN and SITE_FEATURE?

 

Share this post


Link to post
Share on other sites

I would go for

            +----------+                  +-------------------+                 +----------------+
            |  member  |                  |  membership_plan  |                 |  site_feature  |
            +----------+                  +-------------------+                 +----------------+
                       \                /                     \                /
                        \              /                       \              /
                        +--------------+                       +--------------+
                        | subscription |                       |  entitlement |
                        +--------------+                       +--------------+

 

Share this post


Link to post
Share on other sites
1 hour ago, Barand said:

I would go for


            +----------+                  +-------------------+                 +----------------+
            |  member  |                  |  membership_plan  |                 |  site_feature  |
            +----------+                  +-------------------+                 +----------------+
                       \                /                     \                /
                        \              /                       \              /
                        +--------------+                       +--------------+
                        | subscription |                       |  entitlement |
                        +--------------+                       +--------------+

 

 

That is what I have.

 

I just started wondering if maybe my SUBSCRIPTION table shouldn't have the word "entitlement" in it to.  And so I started pondering whether "Entitlements" relate more to people or to things like site features.

 

Share this post


Link to post
Share on other sites
3 minutes ago, benanamen said:

This reminds me of the Bike Shed Problem.

Poor analogy...

Taking time to understand entities and their relationships and coming up with good names is one of the most important things you can do when designing a system.

Almost every problem I have encountered over the last 25+ years is because people didn't take time up front to understand the data entities and their relationships and related processes.

Share this post


Link to post
Share on other sites

Have you considered 'membership_plan_feature(s)' or 'plan_feature(s)'? It certainly seems to me like the most descriptive table name. Entitlements could apply to either member or membership plan.

Share this post


Link to post
Share on other sites
32 minutes ago, maxxd said:

Have you considered 'membership_plan_feature(s)' or 'plan_feature(s)'? It certainly seems to me like the most descriptive table name.

Those would work, but I just have this new sense to use the word "entitlement"...  🙂

 

32 minutes ago, maxxd said:

Entitlements could apply to either member or membership plan.

If I had to split hair, I would say that "entitlements" apply more to features.  As in, "Which system features or functions are you entitled to use?"  (Being able to modify a post a week after the fact or seeing a member's IP address or banning a member are all "entitlements", i.e. privileges, of an Administrator.)

A MEMBER has a SUBSCRIPTION to a MEMBERSHIP_PLAN

By purchasing a "Premium Membership", that MEMBERSHIP_PLAN has ENTITLEMENTS to the following SITE_FEATURES (access to archives, access to premium content, ability to message others, etc).

On one hand it is all semantics, yet I think "precision" in language is essential to any well-designed system.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.