ASTRO企业应用 ASTROPRO-DDL标签使用指南:关系标签

时间:2024-09-14 14:45:08

关系标签

  • 一对多关系

    在MANY一方的关系字段上添加标注:COMMENT 'relation("关联表名","关联表字段","ONE2MANY")'。

    DDL示例:

    CREATE TABLE `t_workspace2` (
        `id` varchar(200) NOT NULL,
        `new_name3` varchar(200) NOT NULL,
        `new_name4` varchar(200) NOT NULL,
        PRIMARY KEY (`id`)
    ) COMMENT = 'primaryKeyType("UUID")';
    
    CREATE TABLE `t_workspace3` (
        `id` varchar(200) NOT NULL,
        `new_name4` varchar(200) NOT NULL,
        `workspace2_id` varchar(200) NOT NULL COMMENT 'searchable;relation("t_workspace2","id","ONE2MANY")',
        PRIMARY KEY (`id`)
    ) COMMENT = 'primaryKeyType("UUID")';

    标签使用效果:

  • 多对多关系

    在多对多关系表的关系字段上添加标注:COMMENT = 'relation("关联表名","关联表字段","MANY2MANY")'。

    此处关系的首要方关联字段写在关系的次要方关联字段前面,即workspace4_id字段在workspace5_id前面。示例中首要方:t_workspace4,次要方:t_workspace5。

    DDL示例:

    CREATE TABLE `t_workspace4` (
        `id` varchar(200) NOT NULL,
        `new_name3` varchar(200) NOT NULL,
        `new_name4` varchar(200) NOT NULL,
        PRIMARY KEY (`id`)
    ) COMMENT = 'primaryKeyType("UUID")';
    
    CREATE TABLE `t_workspace5` (
        `id` varchar(200) NOT NULL,
        `new_name3` varchar(200) NOT NULL,
        `new_name4` varchar(200) NOT NULL,
        `new_name5` varchar(200) NOT NULL,
        PRIMARY KEY (`id`)
    ) COMMENT = 'primaryKeyType("UUID")';
    
    CREATE TABLE `t_rel_workspace4_workspace5` (
        `new_name3` varchar(200) NOT NULL,
        `new_name4` varchar(200) NOT NULL,
        `workspace4_id` varchar(200) NOT NULL COMMENT 'relation("t_workspace4","id","MANY2MANY")',
        `workspace5_id` varchar(200) NOT NULL COMMENT 'relation("t_workspace5","id","MANY2MANY")',
        CONSTRAINT pk_t_rel_workspace4_workspace5 PRIMARY KEY (`workspace4_id`, `workspace5_id`)
    ) COMMENT = 'relWorkspace4Workspace5';

    标签使用效果:

  • 聚合关系

    在聚合关系的主表的关系字段上添加标注:COMMENT 'relation("关联表名","关联表字段","AGGREGATE")'。

    DDL示例:

    CREATE TABLE `t_spec_group` (
        `id` varchar(40) NOT NULL COMMENT 'id',
        `city_id` varchar(40) NOT NULL COMMENT 'relation("t_city","id","AGGREGATE")',
        `name` varchar(200) NULL,
        PRIMARY KEY (`id`)
    ) COMMENT = 'specGroup';
    
    
    CREATE TABLE `t_city` (
        `id` varchar(40) NOT NULL COMMENT 'id',
        `city` varchar(200) NULL,
        `dateType` date NOT NULL COMMENT 'dateType',
        PRIMARY KEY (`id`)
    ) COMMENT = 'city';

    标签使用效果:

  • 树递归关系

    在树递归关系BO表中的"parent_id"上添加标注:COMMENT 'relation("关联表名","关联表字段","RECURSIVE")'。

    DDL示例:

    CREATE TABLE `t_workspace6` (
        `parent_id` bigint(40) NULL COMMENT 'parent_id;relation("t_workspace6","id","RECURSIVE")',
        `id` bigint(40) NOT NULL,
        `new_name4` varchar(200) NOT NULL,
        `new_name5` varchar(200) NOT NULL,
        PRIMARY KEY (`id`)
    ) COMMENT = 'primaryKeyType("SNOWFLAKE")';

    标签使用效果:

support.huaweicloud.com/usermanual-astropro/astropro_05_0141.html