Can you comment on the below design.
Am I setting myself up for destruction with this sort of design? I have been designing systems over and over again because of completely new requirements that can’t be hacked in designs so now I’m looking long term solution to have the most flexible system.
With this design I could dynamically create complexity and designs like below now I realize the implementation won’t be straight forward so before I spend days on it I wanted to get some real input.
Is that a common no-no or is that common?
Any input would be appreciated.

instance
firstname bob
lastname gates
scoreone 20
scoretwo 90
scorethree
scorethreePart1 30
scoreThreePart2 32
CREATE DATABASE uni;
use uni;
CREATE TABLE instance (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ParentID INT DEFAULT NULL,
FOREIGN KEY (ParentID) REFERENCES instance(ID) ON DELETE CASCADE
) ENGINE=InnoDB;
CREATE TABLE keyval_connector (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ParentID INT NOT NULL,
TextKey VARCHAR(255) NOT NULL,
Note TEXT DEFAULT NULL,
UNIQUE(ParentID, TextKey),
FOREIGN KEY (ParentID) REFERENCES instance(ID) ON DELETE CASCADE
) ENGINE=InnoDB;
CREATE TABLE keyval_int (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ParentID INT NOT NULL,
Value INT DEFAULT NULL,
UNIQUE(Value),
FOREIGN KEY (ParentID) REFERENCES keyval_connector(ID) ON DELETE CASCADE
) ENGINE=InnoDB;
CREATE TABLE keyval_varchar (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ParentID INT NOT NULL,
Value VARCHAR(255) DEFAULT NULL,
UNIQUE(Value),
FOREIGN KEY (ParentID) REFERENCES keyval_connector(ID) ON DELETE CASCADE
) ENGINE=InnoDB;
CREATE TABLE keyval_double (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ParentID INT NOT NULL,
Value DOUBLE DEFAULT NULL,
UNIQUE(Value),
FOREIGN KEY (ParentID) REFERENCES keyval_connector(ID) ON DELETE CASCADE
) ENGINE=InnoDB;
CREATE TABLE keyval_datettime (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ParentID INT NOT NULL,
Value DATETIME DEFAULT NULL,
UNIQUE(Value),
FOREIGN KEY (ParentID) REFERENCES keyval_connector(ID) ON DELETE CASCADE
) ENGINE=InnoDB;
It looks like you’re going for an Entity-Attribute-Value (EAV) Model, which has its uses in some situations. Without knowing the specifics of your requirements, it’s hard to say if this is a valid use case.