精华内容
下载资源
问答
  • 数据库复合属性
    万次阅读 多人点赞
    2020-04-24 09:19:30

    多值属性、复合属性等概念

    1).简单属性:不能再划分为更小部分的属性。

    2).复合属性:可以再划分为更小的部分,也就是能再划分为一些其他属性的属性。

    比如说:name属性可被设计为一个包括first_name,middle_name,lase_name的复合属性。

    3).单值属性:数据库中,所定义的属性对于一个特定的实体都只有一个单独的值。

    比如说:对于某个特定的贷款loan实体而言,loan_number属性只对应一个贷款号码。一个贷款就只对应一个贷款号。loan_number 就是一个单值属性。

    4).多值属性:在某些情况下对某个特定实体而言,一个属性可能对应一组值。

    比如说:对于employee实体集,里面有一个属性phone_number, 每个员工就可能有0个,1个或多个电话号码。因此,employee实体集在phone_number属性上就有不同数目的值, phone_number就是一个多值属性。

    5).派生属性:这类属性的值可以从别的相关属性或实体派生出来(也就是可通过别的属性计算出来)。

    比如说:customer实体集具有属性age, 表示客户的年龄,可以通过属性date_of_birth计算出来。

    date_of_birth可以称为基属性,或存储的属性。

    派生属性的值不存储,但在需要时可被计算出来。

    转载自:
    https://www.it610.com/article/2139473.htm

    更多相关内容
  • 数据库 复合属性

    2021-03-04 05:43:17
    问题不在于数据库,问题在于处理联接时,SQL非常麻烦,尤其是复合键。 EAV和6NF数据库具有更多的Joins,它们与行人一样多。当然,如果您必须手动编写每个SELECT的代码,那么麻烦就变得很麻烦。 可以通过(a)在EAV上...

    在我们进行合理讨论之前,需要澄清和解决某些问题。

    前提条件解决

    标签 在需要精确度的行业中,重要的是我们使用精确的标签,以避免混淆,以便我们可以进行交流而不必使用冗长的描述和限定词。 。 什么你已经张贴FixedTables,是Unnormalised。足够公平,可以尝试使用“第三范式”形式,但是实际上它是一个平面文件,非规范化(不是“非规范化”)。确切地说,您发布为AbstractTables的是Entity-Attribute-Value,几乎,但不完全是第六范式,因此比3NF规范化得多,当然,假设正确完成。

    未规范化的平面文件未“非规范化”。它充满了重复(没有做任何操作来删除重复的组和重复的列或解决依赖项)和Null,它在许多方面都是性能浪费,并防止了并发。

    为了进行Denormlaise,必须先对其进行归一化,然后出于某些充分的理由而使归一化稍微后退。由于首先没有对其进行归一化,因此无法对其进行归一化。它只是未归一化。

    不能说它是“为了性能”而被非规范化的,因为它是性能猪,它与性能完全相反。好吧,他们需要缺乏形式化设计的理由],“为了性能”就可以了。即使是最小的正式审查也暴露了错误的陈述(但是很少有人可以提供,因此它一直隐藏着,直到他们让局外人解决,您猜对了,这是巨大的性能问题)。

    规范化结构的性能远优于未规范化结构。标准化程度较高的结构(EAV / 6NF)比标准化程度较低的结构(3NF / 5NF)更好。

    我同意OMG小马的主旨,但不同意其标签和定义

    而不是说“除非必须,否则不要“非正规化””,而是说“忠实地标准化,定期”和“如果存在性能问题,则表示您未正确标准化”。 。 Wiki 关于Normal Forms和Normalization的条目完全是个笑话。具体来说,这些定义是不正确的。他们混淆了普通表格;他们对规范化过程一无所知;它们对很久以前就被揭穿的荒谬或可疑NF给予同等的重视。结果是,Wiki增加了一个本已混乱且鲜为人知的主题。因此,不要浪费您的时间。 。 但是,为了取得进展,在没有该提法构成障碍的情况下,我要说这句话。

    3NF的定义稳定,没有改变。 3NF和5NF之间存在很多NF混淆。事实是,这是过去15年中取得进展的领域。许多组织,学者和供应商都对其产品进行了限制,他们跳起来创建了一个新的“ Normal Form”来验证他们的产品。所有服务于商业利益和学术上不健全。3NF处于其原始未篡改状态,旨在并保证某些属性。 总的来说,今天的5NF就是15年前3NF的目标,您可以跳过商业玩笑和两者之间的大约十二种“特殊”(商业和伪学术)NF,其中一些是在Wiki中识别,甚至用混淆的术语表示。 。 由于您已经能够理解和实施帖子中的EAV,因此理解以下内容将没有问题。当然,真正的关系模型是先决条件,强键等。第五范式是,因为我们跳过了第四种:

    第三范式 简单来说,每个表中的每个非键列与表的主键之间具有1 :: 1的关系, 并且没有其他非关键列 零数据重复(结果,如果勤奋地进行标准化,则不是单靠智力或经验,或者是通过努力将其作为目标而没有正式过程来实现) 无更新异常(当您在某处更新一列时,不必更新位于其他地方的同一列;该列存在于一个且仅一个位置)。 。 第六范式当然是第五范式,再加上:

    消除丢失的数据(列)。这是Null问题(也称为处理缺失值)的一种真正解决方案,结果是没有Nulls的数据库。(这可以在5NF下使用标准和Null替代品完成,但这不是最佳选择。)如何解释和显示缺失值是另一回事。 。 EAV与第六范式 的比较我编写的所有数据库(除一个以外)都是纯5NF。我已经使用(管理,修复,增强)了几个EAV数据库,并且已经实现了一个真正的6NF数据库。EAV是6NF的宽松实现,通常由对标准化和NF不太了解但可以看到EAV的价值并需要EAV灵活性的人员完成。你是一个完美的例子。区别在于:因为它比较松散,并且因为实现者没有忠实的参考(6NF),所以他们仅实现所需的东西,并全部用代码编写;最终导致模型不一致。 。 鉴于纯6NF实现确实具有纯学术参考点,因此通常更加严格且一致。通常,这显示在两个可见元素中: 6NF有一个包含元数据的目录,并且所有内容都是在元数据中定义的,而不是代码。EAV没有一个,一切都在代码中(实现者跟踪对象和属性)。显然,目录使添加列,导航变得容易,并允许形成实用程序。 当理解6NF时,它可以真正解决Null问题。EAV实现者由于缺少6NF上下文,因此会不一致地处理代码中丢失的数据,或者更糟的是,允许数据库中的Null。6NF实现者禁止使用Null,并一致而优雅地处理丢失的数据,而无需代码构造(对于Null处理;当然,您仍然必须为丢失的数据编写代码)。 。 例如。对于具有目录的6NF数据库,我有一组proc将[重新生成]执行所有SELECT所需的SQL,并且我为所有用户提供5NF视图,因此他们不需要了解或理解底层6NF结构。 。他们被驱逐出目录。因此,更改是容易且自动化的。由于没有目录,EAV类型手动执行此操作。 现在,我们可以开始

    讨论区

    “如果预先定义了值,那么当然可以更加抽象(例如:专业可以拥有自己的列表)”

    当然。但是不要太“抽象”。保持一致性,并以与其他列表相同的EAV(或6NF)方式实施此类列表。

    “如果我采用抽象方法,它可能会非常灵活,但是带有许多联接的查询将变得更加复杂。但是,我不知道这是否会影响这些“更复杂”的查询的性能。”

    关系数据库中的联接是行人。问题不在于数据库,问题在于处理联接时,SQL非常麻烦,尤其是复合键。 EAV和6NF数据库具有更多的Joins,它们与行人一样多。当然,如果您必须手动编写每个SELECT的代码,那么麻烦就变得很麻烦。 可以通过(a)在EAV上使用6NF以及(b)实施目录来消除整个问题,从中可以(c)生成所有基本SQL。也消除了整个错误类别。 一个普遍的神话是,加入某种方式会产生成本。完全错误。该联接是在编译时实现的,对于“成本” CP​​U周期没有实质性影响。问题是要联接的表的大小,而不是这些相同表之间的联接的成本。在正确的PK⇢FK关系上连接两个表,每个表具有数百万行,每个表具有适当的索引(在parent [FK]侧为唯一;在Child侧为唯一)。; 如果Child索引不是唯一的,但是至少前导列是有效的,则它慢一些;没有可用索引的地方,那当然很慢。它与加入成本无关。在返回许多行的地方,瓶颈将是网络和磁盘布局。不是加入处理。 因此,您可以随心所欲地获得“复杂”的东西,没有成本,SQL可以处理它。 我想知道这两种方法的优点和缺点。我可以自己想象,但是我没有经验来确认这一点。

    就实施,易用性(开发人员和用户),维护而言,5NF(对于尚未取得进展的人而言,则为3NF)是最简单,最好的。缺点是,每次添加列时,都必须更改数据库结构(表DDL)。在某些情况下很好,但在大多数情况下不是这样,因为适当的变更控制非常繁重。其次,您必须更改现有代码(处理新列的代码不算在内,因为这势在必行):在实施好的标准的地方,这要最小化;如果没有它们,范围是不可预测的。

    EAV(这是您发布的内容)允许添加列而无需DDL更改。这就是人们选择它的唯一原因。(处理新列的代码不计算在内,因为这是必须的)。如果实施得当,它将不会影响现有代码;如果没有,它将。但是您需要具有EAV功能的开发人员。当EAV实施不当时,这是可恶的,这比5NF实施得不好更糟,但不会比大多数数据库都存在的Unnormalized更糟(错误地表示为“性能非常规”)。当然,拥有强大的Transaction上下文(比5NF / 3NF更为重要),因为列的分布远不止这些。同样,必须保持声明式参照完整性:我所看到的混乱很大程度上归因于开发人员删除了DRI,因为它已成为“

    假设已经针对预期目的合理配置了服务器,则性能没有差异。(好吧,只有在6NF中才有可能实现特定的优化,而在其他NF中则无法实现,但是我认为这超出了本线程的范围。)同样,EAV做得不好会造成不必要的瓶颈,仅此而已。未规范化。

    当然,如果您使用EAV,我建议您提供更多的手续;买完整的交换;配6NF;实施目录;产生SQL的实用程序;意见;始终处理丢失的数据;完全消除Null。这减少了您对开发人员质量的脆弱性;他们可以忘记EAV / 6NF深奥的问题,使用Views并专注于应用程序逻辑。

    请原谅。来源:stack overflow

    展开全文
  • 数据库学习之复合查询和内外连接

    多人点赞 热门讨论 2022-08-12 20:24:50
    数据库学习之复合查询

    1基本查询

    查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J
    在这里插入图片描述

    按照部门号升序而雇员的工资降序排序
    在这里插入图片描述

    使用年薪进行降序排序
    年薪需要加上奖金
    在这里插入图片描述

    显示工资最高的员工的名字和工作岗位
    在这里插入图片描述

    显示工资高于平均工资的员工信息
    在这里插入图片描述

    显示每个部门的平均工资和最高工资
    在这里插入图片描述

    显示平均工资低于2000的部门号和它的平均工资
    在这里插入图片描述

    显示每种岗位的雇员总数,平均工资
    在这里插入图片描述

    多表查询

    显示雇员名、雇员工资以及所在部门的名字因为上面的数据来自EMP和DEPT表,因此要联合查询
    在这里插入图片描述

    显示部门号为10的部门名,员工名和工资
    在这里插入图片描述

    显示各个员工的姓名,工资,及工资级别
    在这里插入图片描述

    2自连接

    显示员工FORD的上级领导的编号和姓名

    子查询
    在这里插入图片描述

    多表查询(自查询)
    在这里插入图片描述

    3子查询

    子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询

    单行子查询

    单行:即:我们先查询的只有一行,然后根据这一行的一个属性,然后再在整张表中查询,与这个属性相关的内容

    显示SMITH同一部门的员工
    在这里插入图片描述

    多行子查询

    in关键字;
    查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的
    在这里插入图片描述

    all关键字;
    显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号
    在这里插入图片描述

    any关键字;显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门的员工)
    在这里插入图片描述

    多列子查询

    查询和SMITH的部门和岗位完全相同的所有雇员,不含SMITH本人
    在这里插入图片描述

    在from子句中使用子查询

    显示每个高于自己部门平均工资的员工的姓名、部门、工资、平均工资
    在这里插入图片描述

    查找每个部门工资最高的人的姓名、工资、部门、最高工资
    在这里插入图片描述

    显示每个部门的信息(部门名,编号,地址)和人员数量
    使用多表
    在这里插入图片描述
    select后面跟的查询内容,一般是不能出现聚合函数和普通属性在一起的,如果非要在一起,那么就需要将这些普通属性在后面的group by 后在写一次即可
    子查询
    在这里插入图片描述

    4合并查询

    union—或者

    将工资大于2500或职位是MANAGER的人找出来
    在这里插入图片描述

    union all

    相比较而言,union all不去重
    在这里插入图片描述

    5内连接

    语法:
    select 字段 from1 inner join2 on 连接条件 and 其他条件;
    

    显示SMITH的名字和部门名称
    在这里插入图片描述

    6外连接

    左外连接

    在这里插入图片描述
    在这里插入图片描述

    右外连接

    在这里插入图片描述

    展开全文
  • 数据库 - 字段属性

    2021-11-25 09:29:33
    数据库 - 字段属性 主键 – 唯一键和自增长 主键 增加主键 大体分为三种增加主键的方式: 方案一: 高清图: 方案二:有多个字段作为主键可以是复合主键。 方案三:

    数据库 - 字段属性

    主键 – 唯一键和自增长

    主键
    在这里插入图片描述
    增加主键
    大体分为三种增加主键的方式:
    方案一:
    在这里插入图片描述
    高清图:
    在这里插入图片描述

    方案二:有多个字段作为主键可以是复合主键。
    在这里插入图片描述
    方案三:
    在这里插入图片描述
    主键约束
    创建约束的目的就是保证数据的完整性和一致性

    主键对应的字段中的数据必须唯一,且不能为NULL, 一旦重复,数据操作失败(增和改)

    建议主键使用数字类型,因为数字的检索速度非常快,并且主键如果是数字类型,还可以设置自动增长,主键的原理其实就是一个计数器

    更新主键 and 删除主键
    没有办法来更新主键,主键必须先删除,才能增加
    Alter table 表名 drop primary key;
    在这里插入图片描述
    主键分类 - 逻辑主键
    在这里插入图片描述
    在这里插入图片描述
    自动增长
    在这里插入图片描述
    新增自增长
    自增长的特点:

    • 任何一个字段要做自增长必须前提是本身是一个索引(key一栏有值 - 像之前的key那一栏中主键的话,),auto_increment表示自动编号
    • 自增长字段必须是数字(整型)
    • 一张表最多只能有一个自增长

    自增长的使用

    当自增长被给定的值为NULL或者默认值的时候会触发自动增长

    先建立一张自增长表
    在这里插入图片描述
    切记:在每次书写语句以后,在最后一句后面不用添加逗号,直接用小括号加上分号结束即可。

    当自增长被给定的值为NULL或者默认值的时候会触发自动增长.
    在这里插入图片描述
    在这里插入图片描述
    自增长如果对应的字段输入了值,那么自增长失效,但是下一次还是能够正确的自增长,(最大值 + 1)
    在这里插入图片描述
    删除自增长
    自增长是字段的一个属性,可以通过modify 来进行修改(保证字段没有auto_increment即可)
    Alter table 表名 modify 字段 类型;
    在这里插入图片描述

    唯一键

    一张表往往有很多字段需要具有唯一性,数据不能重复: 但是一张表中只能有一个主键: 唯一键(unique key)就可以解决表中有多个字段需要唯一性约束的问题.
    一张表只有一个主键,但是可以有很多的唯一键。

    唯一键的本质与主键差不多: 唯一键默认的允许自动为空,而且可以多个为空(空字段不参与唯一性比较)

    添加唯一键的三种方案:基本与主键差不多!

    • 在创建表的时候,字段之后直接跟上 unique / unique key
    • 在所有的字段都添加之后,增加unique key(字段列表) – 复合唯一 键
    • 在创建表之后增加唯一键
      (alter table 表名 add unique key(列名);)

    唯一键约束
    唯一键与主键本质相同: 唯一的区别就是唯一键默认允许为空,而且是多个为空.
    一般在设置主键以后,自己自己添加自增长。
    如果唯一键也不允许为空: 与主键的约束作用是一致的.
    如果唯一键也不允许为空: 与主键的约束作用是一致的.
    在这里插入图片描述
    更新唯一键 & 删除唯一键
    在这里插入图片描述
    在这里插入图片描述

    外键

    外键:即外面的键:键不在自己表中,如果一张表中有一个字段(非主键)指向另外一张表的主键,那么该字段称之为外键。

    增加外键
    在这里插入图片描述
    reference 提及,谈到
    在这里插入图片描述
    !!! 在命令行书写时,我们的注释 – 后面需要空出一格来!

    展开全文
  • 将每个面中的一种类目与另一个面中的一种类目组合在一起,即组成一个复合类目。 ;02; 分级是对事物或现象的数量或特征进行等级的划分,主要包括确定分级数和分级界限。 确定分级数的基本原则 分级数应符合数值估计...
  • mysql数据库属性

    千次阅读 2018-03-08 15:59:42
    mysql数据库属性主要有:null/not null,default,primary key, unique key, auto_increment, comment等(1)空属性:null/not null(2)列描述:comment(3)默认值:某一种数据会经常性的出现某个具体的值。可以在一...
  • 数据库的设计和范式

    2020-12-14 20:24:25
    从实体的角度看是实体属性的类型只能是基本数据类型,不能是复合数据类型。这一条对于关系数据库来说很容易满足,但对于面向对象数据库来说不一定了。而且需要特别注意的是数据库范式的考察必须与具体的需求相关,也...
  • 数据库字段属性和索引

    千次阅读 2019-07-05 23:30:25
    字段属性 主键,唯一值和自增长 主键 主键:primary key ,主要的键,一张表只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复,这种称之为主键。 1.增加主键 SQL操作中有多种方式可以...
  • 1.嵌套属性的查询和根属性不一样:查询es表的所有数据 因为是nested类型,所以必须有一个nested的查询语句:下面一定有两个参数,分别是“path”和“query”。关于涉及到的表是看各自公司在配置ES数据库的时候是怎么...
  • 数据库属性

    千次阅读 2019-07-15 21:26:21
    NULL属性 表示字段为空,如果对应的值为YES表示该字段数据可以为空(默认可以为空) 设置字段数据不能为空 DEFAULT属性 默认值,字段设置该属性后,如果用户不进行数据插入则使用事先准备好的数据来填充...
  • 数据库ER图基础概念整理

    千次阅读 2022-03-29 11:52:00
    2,属性(attribute):实体所具有的属性,例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用...
  • 数据库设计1

    2022-08-03 19:03:16
    数据库设计数据建模E-R模型基本思想E实体实体与实例类(实体):学生个体(实例):张三属性单一属性与复合属性单值属性和多值属性导出属性(由其他属性计算)关系的第
  • (二)数据库基础——属性分类

    千次阅读 2015-04-25 19:30:00
    比如说:name属性可被设计为一个包括first_name,middle_name,lase_name的复合属性。  3 ). 单值属性:数据库中,所定义的属性对于一个特定的实体都只有一个单独的值。 比如说:对于某个特定的贷款loan...
  •  不能是复合属性,如果存在,应该拆分为多个属性  不能是多值属性,如果存在,应该建立一个实体,而让此属性与其存在1对多的关系)  不能是重复属性    2.第二范式:任何非关键字段不能部分依赖任一侯选...
  • ArcGIS地理数据库建模设计及实现,ArcGIS Diagrammer和Case Tool的比较Marine Mammal Densities, Filtered by Season 地理数据库设计概述 esrI China 地理数据库设计概述 Three methods to create a Geodatabase ...
  • 复合属性 B.派生属性 C.多值属性 D.简单属性 正确答案: B 磁盘损坏可能导致 A.介质故障 B.事务故障 C.运行故障 D.系统故障 正确答案: A 并发操作若不加控制的话,可能带来数据不一致问题不包括 A.不可重复读 B....
  • 什么是数据库索引?

    千次阅读 2022-05-31 09:50:12
    ):字段、属性都是对列的称呼,字段是从数据库的角度的名字,而属性是从面向对象的角度的名字。属性和字段是对同一个元素的不同的称呼。在关系代数中成尸体的特性为属性,在关系模型种称实体的特性为字段。 1. 2....
  • 数据库复合主键的应用场景

    千次阅读 2019-06-28 09:40:44
    数据库表中不能有多个主键,如果已经存在主键,则复合主键会创建失败 复合主键的效率受数据类型影响,尽量使用简单数据类型 在创建复合主键时,数据关系一定要理清楚,否则可能会带来未知的错误
  • 数据库建模

    千次阅读 2022-04-02 14:14:47
    数据库建模 2021-4-24 课程笔记 0. mind 1. 基本概念 本小节内容仅做一些基本概念的介绍 1.1 实体集 ①实体 即客观事实存在的事物或对象,是一个名词 例:学生,教师,书等实际客观存在的事物;也可以是一门课...
  • 数据库设计基础知识

    2022-04-16 22:25:16
    数据库系统DBS:是一个采用了数据库技术,有组织地、动态地存储大量相关数据,  方便多用户访问的计算机系统。其由下面四个部分组成: 数据库(统一管理、长期存储在计算机内的,有组织的相关数据的集合)&...
  • MySQL数据库面试题(2020最新版)

    万次阅读 多人点赞 2020-03-10 17:20:40
    文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储...
  • 数据库原理系列】数据库E-R模型

    千次阅读 2020-11-27 14:11:26
    实体的型)和个体(实体的实例,实体的值)的概念 实体用属性来刻画 属性 实体所具有的某一方面特性 属性还有很多类型 单一属性与复合属性, 复合属性示例:家庭住址:省份, 详细住址 在关系模型中,复合属性一定要转化...
  • 数据库学习3-列属性(字段属性

    千次阅读 2021-01-14 16:07:18
    属性又称为字段属性,在mysql中共有6个属性,null,默认值,列描述,主键,唯一键和自动增长 null属性 null属性,代表字段为空 如果对应的值为YES表示该字段可以为空值 注意: 在设计表的时候,尽量不要让...
  • 设计数据库 做一个数据库之前,一定要规划好要做什么,如何做,以及需要存储哪些数据,这些数据之间的关系是什么,需要满足哪些用户要求,都要先考虑好,这就是数据库设计的前提。 数据库设计 数据结构设计包括以下...
  • 数据库系统原理——数据库建模

    千次阅读 2020-08-31 20:24:45
    数据库设计就是根据各种应用处理的要求、硬件环境及操作系统特性等,将现实世界中的数据进行合理组织,并利用已有的数据库管理系统(DBMS)来建立数据库系统的过程。 2. 设计流程 (1). 需求分析(设计的基础、最困难...
  • 关系数据库建模
  • 数据库设计中的英文术语表

    千次阅读 2018-07-04 16:47:43
     Alias(别名):某属性的另一个名字。在SQL中,可以用别名替换表名。 Alternate keys(备用键,ER/关系模型):在实体/表中没有被选为主健的候选键。 Anomalies(异常)参见更新异常(update anomalies) ...
  • 数据库的存储结构
  • 分布式数据库架构

    千次阅读 2022-04-08 23:22:54
    分布式数据库架构 1、MySQL常见架构设计 对于mysql架构,一定会使用到读写分离,在此基础上有五种常见架构设计:一主一从或多从、主主复制、级联复制、主主与级联复制结合。 1.1、主从复制 这种架构设计是使用的最多...
  • 第2章数据库关系模型 ...常用的关系查询操作包括选择、投影、连接、并、交等。... 实体完整性是指关系表的... 关系中复合键至少包含两个属性。 v 代理键是为了唯一标识关系的不同元组,需要在表单或报表中显示...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,185
精华内容 20,874
热门标签
关键字:

数据库复合属性

友情链接: springTest.rar