Is it a good idea to use varchar if I have so store data of length 1000? Below is my script and column SR_NOTES is the one I a worried about. I user utf8 and the engine is INNODB. Would it be wiser to go with say for example, TINYTEXT? I am keen to create a database design without hampering performance.
CREATE TABLE IF NOT EXISTS SROR (
SROR_ID INT UNSIGNED NOT NULL,
CRAN_ID INT UNSIGNED NOT NULL,
SR_TAGS VARCHAR(250) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,
GR_VALUES DECIMAL(4,2), -- 12.25 R
NOTICE_PERIOD SMALLINT UNSIGNED DEFAULT NULL,
C_STATUS VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' DEFAULT 'INACTIVE',
SR_NOTES VARCHAR(1000) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' DEFAULT NULL,
SR_CONTROL VARCHAR(10) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' DEFAULT NULL,
START_DATE DATETIME DEFAULT CURRENT_TIMESTAMP,
LAST_UPDATE DATETIME ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (SROR_ID, CRAN_ID),
INDEX idx_SROR_id1 (SROR_ID ASC),
INDEX idx_SROR_id2 (CRAN_ID ASC),
CONSTRAINT fk_SROR_C1
FOREIGN KEY (CRAN_ID)
REFERENCES R_CONFIG (CRAN_ID)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;