DDL_Parse_数组格式示例.json 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. {
  2. "说明": "DDL Parse API 返回格式 - 使用JSON数组,不使用表名作为key",
  3. "单表示例": {
  4. "描述": "即使只有一个表,也返回数组格式",
  5. "API响应": {
  6. "code": 200,
  7. "data": [
  8. {
  9. "table_info": {
  10. "name_zh": "科室对照表",
  11. "name_en": "TB_JC_KSDZB"
  12. },
  13. "columns": [
  14. {
  15. "name_zh": "医疗机构代码",
  16. "name_en": "YLJGDM",
  17. "data_type": "VARCHAR(22)",
  18. "is_primary": "是",
  19. "comment": "医疗机构代码,复合主键",
  20. "nullable": "否"
  21. },
  22. {
  23. "name_zh": "HIS科室代码",
  24. "name_en": "HISKSDM",
  25. "data_type": "CHAR(20)",
  26. "is_primary": "是",
  27. "comment": "HIS科室代码,主键、唯一",
  28. "nullable": "否"
  29. },
  30. {
  31. "name_zh": "HIS科室名称",
  32. "name_en": "HISKSMC",
  33. "data_type": "CHAR(20)",
  34. "is_primary": "否",
  35. "comment": "HIS科室名称",
  36. "nullable": "否"
  37. },
  38. {
  39. "name_zh": "病案科室代码",
  40. "name_en": "BAKSDM",
  41. "data_type": "CHAR(20)",
  42. "is_primary": "否",
  43. "comment": "病案科室代码,应与\"病案明细表\"里的科室ID对应",
  44. "nullable": "是"
  45. }
  46. ],
  47. "exist": false
  48. }
  49. ],
  50. "message": "操作成功"
  51. }
  52. },
  53. "多表示例": {
  54. "描述": "多个表都放在数组中,不使用表名作为key",
  55. "API响应": {
  56. "code": 200,
  57. "data": [
  58. {
  59. "table_info": {
  60. "name_zh": "科室对照表",
  61. "name_en": "TB_JC_KSDZB"
  62. },
  63. "columns": [
  64. {
  65. "name_zh": "医疗机构代码",
  66. "name_en": "YLJGDM",
  67. "data_type": "VARCHAR(22)",
  68. "is_primary": "是",
  69. "comment": "医疗机构代码",
  70. "nullable": "否"
  71. }
  72. ],
  73. "exist": false
  74. },
  75. {
  76. "table_info": {
  77. "name_zh": "用户表",
  78. "name_en": "TB_USER"
  79. },
  80. "columns": [
  81. {
  82. "name_zh": "用户ID",
  83. "name_en": "USER_ID",
  84. "data_type": "INTEGER",
  85. "is_primary": "是",
  86. "comment": "用户唯一标识",
  87. "nullable": "否"
  88. },
  89. {
  90. "name_zh": "用户名",
  91. "name_en": "USERNAME",
  92. "data_type": "VARCHAR(50)",
  93. "is_primary": "否",
  94. "comment": "用户登录名",
  95. "nullable": "否"
  96. }
  97. ],
  98. "exist": true
  99. },
  100. {
  101. "table_info": {
  102. "name_zh": "部门表",
  103. "name_en": "TB_DEPARTMENT"
  104. },
  105. "columns": [
  106. {
  107. "name_zh": "部门ID",
  108. "name_en": "DEPT_ID",
  109. "data_type": "INTEGER",
  110. "is_primary": "是",
  111. "comment": "部门唯一标识",
  112. "nullable": "否"
  113. },
  114. {
  115. "name_zh": "部门名称",
  116. "name_en": "DEPT_NAME",
  117. "data_type": "VARCHAR(100)",
  118. "is_primary": "否",
  119. "comment": "部门名称",
  120. "nullable": "否"
  121. }
  122. ],
  123. "exist": false
  124. }
  125. ],
  126. "message": "操作成功"
  127. }
  128. },
  129. "格式特点": {
  130. "1. 数组结构": "使用JSON数组返回,即使只有一个表也是数组",
  131. "2. 不使用表名作为key": "所有表都是数组元素,不以表名为key",
  132. "3. 统一结构": "每个表都包含 table_info 和 columns",
  133. "4. exist字段": "由后端添加,表示该表在数据库中是否已存在",
  134. "5. 支持多表": "一次可以解析包含多个CREATE TABLE语句的SQL文件"
  135. },
  136. "字段说明": {
  137. "table_info": "表的基本信息",
  138. "table_info.name_zh": "表的中文名称(从COMMENT ON TABLE提取)",
  139. "table_info.name_en": "表的英文名称(保持原始大小写)",
  140. "columns": "字段数组",
  141. "columns[].name_zh": "字段中文名称",
  142. "columns[].name_en": "字段英文名称",
  143. "columns[].data_type": "数据类型(含长度)",
  144. "columns[].is_primary": "是否主键(是/否)",
  145. "columns[].comment": "完整注释内容",
  146. "columns[].nullable": "是否可为空(是/否)",
  147. "exist": "表是否在数据库中已存在(由后端查询添加)"
  148. },
  149. "前端使用示例": {
  150. "JavaScript": "const tables = response.data;\ntables.forEach(table => {\n console.log('表名:', table.table_info.name_zh);\n console.log('字段数:', table.columns.length);\n console.log('是否存在:', table.exist);\n});",
  151. "Python": "tables = response['data']\nfor table in tables:\n print(f\"表名: {table['table_info']['name_zh']}\")\n print(f\"字段数: {len(table['columns'])}\")\n print(f\"是否存在: {table['exist']}\")"
  152. }
  153. }