Готовый (My)SQL-сценарий для перевода баз персональных данных на 6+ полов:
CREATE TABLE `Genders` ( `Id` INT(1) UNSIGNED NOT NULL AUTO_INCREMENT, `Name` VARCHAR(22) NOT NULL, PRIMARY KEY (`Id`), UNIQUE KEY `Name` (`Name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1; // Compatible with // – http://assembly.coe.int/nw/xml/XRef/Xref-XML2HTML-en.asp?fileid=24812&lang=en // – https://en.wikipedia.org/wiki/LGBTIQ // – https://en.wikipedia.org/wiki/ISO/IEC_5218 INSERT INTO `Genders` VALUES ( 0, 'Not known'); INSERT INTO `Genders` VALUES ( 1, 'Male'); INSERT INTO `Genders` VALUES ( 2, 'Female'); INSERT INTO `Genders` VALUES ( 3, 'Lesbian'); INSERT INTO `Genders` VALUES ( 4, 'Gay'); INSERT INTO `Genders` VALUES ( 5, 'Bisexual'); INSERT INTO `Genders` VALUES ( 6, 'Transgender'); INSERT INTO `Genders` VALUES ( 7, 'Intersex/Hermaphrodite'); INSERT INTO `Genders` VALUES ( 8, 'Queer/Questioning'); INSERT INTO `Genders` VALUES ( 9, 'Not applicable'); INSERT INTO `Genders` VALUES (10, 'Asexual'); INSERT INTO `Genders` VALUES (11, 'Pansexual/Polysexual'); ALTER TABLE `People` ADD COLUMN `GenderId` INT(1) UNSIGNED DEFAULT NULL BEFORE `Gender`, // NULL = Agender ADD KEY `GenderId` (`GenderId`), ADD FOREIGN KEY (`GenderId`) REFERENCES `Genders` (`Id`); UPDATE `People` SET `GenderId` = CASE WHEN (`Gender` IS TRUE) OR (`Gender` = 1) OR (`Gender` = 'M') THEN 1 WHEN (`Gender` IS NULL) OR (`Gender` IS FALSE) OR (`Gender` = 0) OR (`Gender` = '') OR (`Gender` = 'F') THEN 2 END; ALTER TABLE `People` DROP COLUMN `Gender`;