首页 > 解决方案 > 用于存储年龄组范围的 Mysql 表

问题描述

我想在 mysql 表中存储年龄范围。

我想知道设计这种桌子的最佳方式

例子:

0-1 days
0-1 months
2-3 months
1-2 years

像这样

我虽然将它存储为字符串,但这可能很难解析

标签: mysqldatabasedatabase-design

解决方案


要允许表格是动态的,建议您将其保存为行并启用搜索:-

现在根据父 ID 对其进行分组,如下所示

0-1 days
0-1 months
2-3 months
1-2 years  

现在,如果有人属于 30 天类别,则父行将是 0-1 个月,依此类推

即如果ageCategoryParentId

DROP TABLE IF EXISTS `age_range`;

CREATE TABLE `age_range` (
  `id` INT (50) NOT NULL AUTO_INCREMENT,
  `ageCategoryName` VARCHAR (50) NOT NULL,
  `ageCategoryDescription` TEXT,
  `ageCategoryParentId` INT (50) DEFAULT NULL,
  `ageCategoryStatus` INT (5) NOT NULL,
  `userId` INT (50) NOT NULL,
  `createdAt` TIMESTAMP NOT NULL,
  `updatedAt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `deletedAt` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `ageCategoryName` (`ageCategoryName`)
);

推荐阅读