关于多对多关系(即E-R图中m:n)中的界面展示优化

本文探讨了在系统开发中如何优化多对多关系的界面展示,以学生和课程为例,介绍了如何通过批量绑定功能增强操作便捷性和直观性,符合软件工程的易用性要求。文中提及的界面设计包括学生信息列表界面和课程信息列表界面,以及各自的批量绑定操作,最终数据存储在中间表。这种双向绑定模式适用于权限设计、文件权限绑定等多对多场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

  在以往的系统开发过程中,多对多的界面展示有多种形式,且风格各异。本文将按照自己的理解,对多对多的界面展示给予记录。希望能对日后系统有一些参考。

正文

  以常用的学生和课程为例子。数据库表以及主要字段展示如下:
​​​​E-R图

  1. 学生信息。主要属性:姓名、住址、联系电话等。
  2. 课程信息。主要属性:课程名称、出版社、是否必修等。
  3. 学生-课程中间表。主要属性:学生id、课程id等。

界面

学生信息列表界面

  学生和课程是多对多(m:n)的关系。即,一位学生可以选多门课程,一门课程可以被多位学生选中。学生界面如下:
查询栏目
主列表栏
常用的增加、更改、删除不做太多解释。重点解释批量绑定课程。“批量绑定课程”,选左侧按钮选中一位或者多位学生,批量给这些学生绑定多门课程,最终的数据保存在“学生-课程中间表”中。示意图如下:
学生批量绑定课程示意图

课程信息列表界面

  课程界面如下:
课程列表查询条件
界面列表
重点解释批量绑定学生。“批量绑定学生”,选中左侧按钮,勾选一门或者多门课程,给这些课程批量绑定学生,最终的数据保存在“学生-课程中间表”中。示意图如下:
课程批量绑定学生示意图

结语

  这样的“双向绑定”模式,不仅增加了界面的操作的便捷性和直观性,更符合软件工程中描述的“易用性”要求。
  当然,这里描述的比较简单,主要是针对m:n的界面优化展示的思想。在实际项目中,还需要更加完善的代码和界面展示。其他多对多的情况也可参照,比如权限设计的多对多,文件权限的多对多绑定等,可以推而广之。

  下面这个前辈,给出了代码层面的相关建议和展示。
推荐阅读

【2022年9月】

%% 初始化环境与清除变量 clear all; clc; close all; %% ---------------------------- %% 步骤1: 定义物化性质与环境参数 %% ---------------------------- % 物理化学性质 (文献表3) p_p_DDT = struct(); p_p_DDT.MW = 354.5; % 分子量 (g/mol) p_p_DDT.Sw = 0.004; % 水溶解度 (g/m³) p_p_DDT.Vp = 3e-5; % 蒸汽压 (Pa) p_p_DDT.H = 2.6; % 亨利常数 (Pa·m³/mol) p_p_DDT.LogKow = 6.2; % Log辛醇-水分配系数 p_p_DDT.T_deg = [500, 8000, 25000, 20000]; % 半衰期(h): [空气, 水, 土壤, 沉积物] % 环境参数 (文献表1) env = struct(); env.Area = [1.13e10, 7.1e8, 1.06e10, 7.1e8]; % 面积(): [空气, 水, 土壤, 沉积物] env.Depth = [660, 1.7, 0.2, 0.4]; % 深度(m) env.Volume = env.Area .* env.Depth; % 体积() env.f_oc = [0.055, 0.1]; % 有机碳含量: [土壤, 沉积物] env.TSP = 300; % 总悬浮颗粒物浓度 (μg/m³) % 传输参数 (文献表2) transport = struct(); transport.K_air_water = 3; % 空气-界面传递系数(空气侧)(m/h) transport.K_water_air = 0.03; % 空气-界面传递系数(水侧)(m/h) transport.DryDepo = 50; % 干沉降速率 (m/h) transport.RainRate = 6.3e-5; % 降雨速率 (m/h) transport.SedDepo = 2e-7; % 沉积物沉降速率 (m/h) transport.Resuspension = 8e-8; % 沉积物再悬浮速率 (m/h) transport.WaterRunoff = 1.24e-5; % 土壤水径流速率 (m/h) transport.SoilRunoff = 1.1e-7; % 土壤颗粒径流速率 (m/h) % 其他常数 R = 8.314; % 气体常数 (J/mol/K) T = 285.15; % 环境温度 (K), 12°C转换为开尔文%% ---------------------------- %% 步骤2: 计算各介质逸度容量Z %% ---------------------------- % 空气逸度容量: Z_air = 1/(RT) Z_air = 1 / (R * T); % (mol/m³/Pa) % 水逸度容量: Z_water = Z_air / (H/RT) Z_water = Z_air / (p_p_DDT.H / (R * T)); % (mol/m³/Pa) % 土壤逸度容量 (基于Koc) Koc_soil = 10^(0.92 * p_p_DDT.LogKow + 0.23); % 估算公式 (文献常用) Z_soil_water = Z_water * Koc_soil * env.f_oc(1) * 1600; % 1600 kg/m³为土壤密度 Z_soil = Z_soil_water; % (mol/m³/Pa) % 沉积物逸度容量 Z_sed_water = Z_water * Koc_soil * env.f_oc(2) * 1500; % 1500 kg/m³为沉积物密度 Z_sediment = Z_sed_water; % (mol/m³/Pa) % 各介质的Z值向量 Z = [Z_air, Z_water, Z_soil, Z_sediment];%% ----------
最新发布
04-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值