# 04 Germplasm / Seed 开发录入说明

来源：`docs/architecture/04-germplasm-seed-data-flow.md`

本目录按 Germplasm / Seed 模块的数据录入顺序拆分开发说明。主线是：

```text
breeding_method -> germplasm
germplasm_attribute_definition -> germplasm_attribute_value
program -> crossing_project -> cross_entity -> cross_parent
germplasm / cross_entity -> seed_lot_content_mixture -> seed_lot
seed_lot -> seed_lot_transaction
germplasm -> pedigree_node -> pedigree_edge
```

## 文档清单

| 顺序 | 文档 | 表 | 作用 |
| --- | --- | --- | --- |
| 01 | `01-breeding_method.md` | `breeding_method` | 育种方法字典 |
| 02 | `02-germplasm.md` | `germplasm` | 种质主表 |
| 03 | `03-germplasm_donor.md` | `germplasm_donor` | donor 信息 |
| 04 | `04-germplasm_institute.md` | `germplasm_institute` | 机构信息 |
| 05 | `05-germplasm_origin.md` | `germplasm_origin` | 来源地/坐标 |
| 06 | `06-germplasm_synonym.md` | `germplasm_synonym` | 别名 |
| 07 | `07-germplasm_taxon.md` | `germplasm_taxon` | taxon 标识 |
| 08 | `08-germplasm_attribute_definition.md` | `germplasm_attribute_definition` | 属性定义 |
| 09 | `09-germplasm_attribute_value.md` | `germplasm_attribute_value` | 属性值 |
| 10 | `10-crossing_project.md` | `crossing_project` | 杂交项目 |
| 11 | `11-cross_entity.md` | `cross_entity` | Cross / PlannedCross |
| 12 | `12-cross_parent.md` | `cross_parent` | 杂交亲本 |
| 13 | `13-cross_pollination_event.md` | `cross_pollination_event` | 授粉事件 |
| 14 | `14-pedigree_node.md` | `pedigree_node` | 系谱节点 |
| 15 | `15-pedigree_edge.md` | `pedigree_edge` | 系谱边 |
| 16 | `16-seed_lot.md` | `seed_lot` | 种子库存批次 |
| 17 | `17-seed_lot_content_mixture.md` | `seed_lot_content_mixture` | 批次组成 |
| 18 | `18-seed_lot_transaction.md` | `seed_lot_transaction` | 批次流转 |

## 全局注意点

1. `plannedcross` 没有独立数据库表，统一落在 `cross_entity`，通过 `planned` 和 `planned_cross_id` 自关联表达。
2. `germplasm.seedSource` / `seedSourceDescription` 是种质来源描述，不等于真实库存批次。
3. 真正表达库存的是 `seed_lot`，批次与种质或杂交来源的关系在 `seed_lot_content_mixture`。
4. `seed_lot_transaction` 表达 seed lot 到 seed lot 的流转，不直接表达 seed lot 到 germplasm。
5. 属性定义和值要分开：`germplasm_attribute_definition` 定义“可填什么”，`germplasm_attribute_value` 记录“某个 germplasm 填了什么”。
6. 系谱关系用 `pedigree_node` / `pedigree_edge`；杂交流程用 `cross_entity` / `cross_parent`，两条线都可以回到 `germplasm`。
