Database design of a subscription based app
Hi, I'm looking for advice on how to model a DB for a feature based app. e.g. A store has one subscription to one of the 3 different plans (free, starter, growth) and each plan has a set of features. e.g.
Here's more or less what I have in mind, any thoughts?
The current problem I'm facing with this is that a feature can be either a bool, varchar or int and I don't want to create a field that can take any type.
https://dbdiagram.io/d/5f350ebce1246d54aa2d34f1
starter plan allows the submission of 300 emails, whilst growth permits 500. What would be an efficient way to model this?Here's more or less what I have in mind, any thoughts?
The current problem I'm facing with this is that a feature can be either a bool, varchar or int and I don't want to create a field that can take any type.
https://dbdiagram.io/d/5f350ebce1246d54aa2d34f1
CREATE TABLE "store" (
"id" int PRIMARY KEY,
"host" varchar,
"name" varchar NOT NULL,
"description" varchar
);
CREATE TABLE "plans" (
"id" int PRIMARY KEY,
"name" varchar NOT NULL,
"price" int NOT NULL,
"feature_id" int
);
CREATE TABLE "features" (
"id" [pk],
"name" varchar NOT NULL,
"value" varchar NOT NULL
);
CREATE TABLE "subscriptions" (
"id" int PRIMARY KEY,
"plan_id" int,
"store_id" int
);
CREATE TABLE "subscriptions_plans" (
"id" int PRIMARY KEY,
"plan_id" int,
"subscription_id" int
);
ALTER TABLE "features" ADD FOREIGN KEY ("id") REFERENCES "plans" ("feature_id");
ALTER TABLE "subscriptions" ADD FOREIGN KEY ("plan_id") REFERENCES "plans" ("id");
ALTER TABLE "subscriptions" ADD FOREIGN KEY ("store_id") REFERENCES "store" ("id");
ALTER TABLE "subscriptions_plans" ADD FOREIGN KEY ("plan_id") REFERENCES "plans" ("id");
ALTER TABLE "subscriptions_plans" ADD FOREIGN KEY ("subscription_id") REFERENCES "subscriptions" ("id");Notifications
You’re not receiving notifications from this thread.