# 02 Germplasm / Seed - germplasm_attribute_definition 表录入说明

来源：`docs/requirements/02-germplasm-seed-entry-requirements.md`

## 录入目标

属性定义描述“材料可以有哪些稳定属性”。这些属性通常不是环境依赖的田间观测值，而是材料自身特征，例如籽粒颜色、抗病基因、硬度、熟期类型、特定 QTL、分子标记结果等。

## 字段录入

| 字段                   | 业务意义                                                     | 录入方式                     | 控件建议          | 校验规则                              |
| ---------------------- | ------------------------------------------------------------ | ---------------------------- | ----------------- | ------------------------------------- |
| `id`                   | 属性定义主键                                                 | 系统生成                     | 隐藏/只读         | 必填、唯一                            |
| `auth_user_id`         | 数据所属用户或租户                                           | 登录上下文自动写入           | 隐藏              | 不允许手填                            |
| `default_value`        | 属性默认值                                                   | 用户录入                     | 动态输入框        | 可选；按 datatype / scale 校验        |
| `documentationurl`     | 属性说明文档链接                                             | 用户录入                     | URL 输入框        | 可选；校验 URL                        |
| `growth_stage`         | 属性适用生长阶段，如 flowering                               | 用户录入/选择                | 下拉框/文本框     | 可选                                  |
| `institution`          | 提交或维护该属性定义的机构                                   | 用户录入                     | 文本框            | 可选                                  |
| `language`             | 定义语言，如 zh、en                                          | 用户选择                     | 下拉框            | 可选；建议 ISO 639-1                  |
| `scientist`            | 提交该属性定义的科学家或负责人                               | 用户录入/人员选择            | 文本框/人员选择器 | 可选                                  |
| `status`               | 属性状态，如 recommended、obsolete、legacy                   | 用户选择                     | 下拉框            | 可选；推荐使用枚举                    |
| `submission_timestamp` | 属性定义提交时间                                             | 系统默认当前时间，可手动调整 | 日期时间选择器    | 可选；新增默认当前时间                |
| `crop_id`              | 适用作物                                                     | 从 crop 选择                 | 作物选择器        | 可选；若填写，下游材料应同 crop       |
| `method_id`            | 属性测定方法                                                 | 从 method 选择               | 方法选择器        | 可选；若填写，属性值录入按该方法解释  |
| `ontology_id`          | 所属本体                                                     | 从 ontology 选择             | 本体选择器        | 可选                                  |
| `scale_id`             | 值标尺/单位/有效值范围                                       | 从 scale 选择                | 标尺选择器        | 可选；若填写，属性值必须按 scale 校验 |
| `trait_id`             | 关联性状                                                     | 从 trait 选择                | 性状选择器        | 可选                                  |
| `attribute_category`   | 属性分类，如 Morphological、Genetic、Quality                 | 用户选择/录入                | 下拉框/文本框     | 可选；建议字典化                      |
| `code`                 | 属性代码，便于导入导出                                       | 用户录入                     | 文本框            | 可选；建议唯一                        |
| `datatype`             | 属性值数据类型，如 text、numeric、date、boolean、categorical | 用户选择                     | 下拉框            | 必填                                  |
| `description`          | 属性解释                                                     | 用户录入                     | 多行文本          | 可选                                  |
| `name`                 | 属性名称                                                     | 用户录入                     | 文本框            | 必填；作为属性选择器展示名称          |
| `pui`                  | 属性永久标识                                                 | 用户录入                     | 文本框/URL 输入框 | 可选；建议唯一                        |
| `uri`                  | 属性 URI                                                     | 用户录入                     | URL 输入框        | 可选；校验 URL                        |

## 录入建议

- 属性定义页面本质是“属性字典配置”。
- 前端应根据 `datatype` 动态决定属性值录入控件：
  - numeric：数字输入框；
  - categorical：下拉框；
  - date：日期选择器；
  - boolean：开关；
  - text：文本框。
- 若绑定了 `scale_id`，则优先按 scale 的单位、上下限、有效分类值校验。

---

