`
zhang_xzhi_xjtu
  • 浏览: 538437 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

实体类设计有关key的一些想法

    博客分类:
  • db
 
阅读更多
在实体类中一般都有一个key来引用这个实体,在具体设计中,这个key对实体设计是有一定影响的。

基本上key分为对人有意义和对人无意义。

对人有意义的key值应该由用户输入,或者从其他地方得到。对人无意义的key应该由系统生成,一般为uuid或者流水号,这里有一个值得注意的地方,即使无意义的key是系统范围唯一的,也不应该作为数据库的主键。

对于一个实体,一个key可以标识它,而这个实体其他部分可以根据语义做一定的聚合然后和key关联起来。

举个例子,对一个商品建模,有一个key标识它,对于商品物理方面的属性,我们可以定义一个类,包括商品的重量,体积,等等,对于商品商业方面的属性,我们可以定义一个类,包括商品的成本,价格等等。当然以上的类中都包括一个字段即商品key。

这样的话,当客户端查询一个实体时,只需要得到这个实体一部分的属性即可,降低了一些后台开销,传递的东西也都是客户感兴趣的东西。

大家以为如何。

分享到:
评论
6 楼 hszdz 2009-04-03  
我一般有一个逻辑的KEY(系统生成,用作表间关联:uuid)和一个实际的ID(实体标识:unique)

5 楼 zhang_xzhi_xjtu 2009-04-02  
metadmin 写道
为什么要在系统范围内唯一,而不是该实体域内唯一,也就是该库表唯一呢?

-----------------------
权限管理圈子欢迎您加入:
http://accessmanager.group.iteye.com/


这只是一个假设,说明即使这样,也不要在数据库里用.
这里强调的是逻辑的key和数据库的key的分离.
4 楼 metadmin 2009-04-02  
为什么要在系统范围内唯一,而不是该实体域内唯一,也就是该库表唯一呢?
3 楼 zhang_xzhi_xjtu 2009-04-02  
<p>[img][/img]</p>
<div class="quote_title">fjlyxx 写道</div>
<div class="quote_div">   业务库设计的垃圾以后搞综合库,主题库的时候麻烦就是了.如果只是为了挣钱实用就行,什么数据库设计范式.统统没有用.快速开发快速验收才是王道.技术能解决的问题就不是问题了,技术人员能考虑到的问题也都不是问题.一句话 一个商务等于十个技术.最近才领悟到的.百行代码不如一句忽悠,简单一个数据库查询写文件的小工具商务一说就是什么高深的数据整合系统了.立马身价大增.</div>
<p><br /><br />短期的看也许这样是对的,但是公司长远的发展如果也是这么想的话,就不太好了. 当然,中国有中国的国情. <br />但是一个技术人员,还是应该想着怎么在技术上做的比较好. <br /></p>
<div class="quote_title">引用</div>
<div class="quote_div">技术能解决的问题就不是问题了,技术人员能考虑到的问题也都不是问题.</div>
<p><br /><br /><br />从任何从业者的角度看,我们不应该自己不尊重自己的职业. 而且技术问题也并没有想象中那么简单. <br /><br />比如开发一个好的操作系统就是一个技术问题. <br />领导一个公司走向成功对领导而言也是一个技术问题.</p>
<p> </p>
2 楼 fjlyxx 2009-04-02  
   业务库设计的垃圾以后搞综合库,主题库的时候麻烦就是了.如果只是为了挣钱实用就行,什么数据库设计范式.统统没有用.快速开发快速验收才是王道.技术能解决的问题就不是问题了,技术人员能考虑到的问题也都不是问题.一句话 一个商务等于十个技术.最近才领悟到的.百行代码不如一句忽悠,简单一个数据库查询写文件的小工具商务一说就是什么高深的数据整合系统了.立马身价大增.
1 楼 metadmin 2009-04-01  
zhang_xzhi_xjtu 写道
这里有一个值得注意的地方,即使无意义的key是系统范围唯一的,也不应该作为数据库的主键


为什么要在系统范围内唯一,而不是该实体域内唯一,也就是该库表唯一呢?

-----------------------
权限管理圈子欢迎您加入:
http://accessmanager.group.iteye.com/

相关推荐

    C#实体类和实体类集合的自动排序

    在这些应用中,数据通常需要以某种形式存储和展示,这时实体类(Entity Class)和实体类集合(Entity Class Collection)就起到了关键作用。本文将深入探讨如何在C#中实现实体类和实体类集合的自动排序,以及如何将...

    C# .net数据库表实体类生成,一键生成数据库所有表的实体类

    此外,还可以使用`[Key]`装饰器标记主键字段,使用`[Table]`装饰器指定实体类所映射的数据库表。 以下是一个简单的实体类生成示例: ```csharp public class 示例表 { [Key] public int 示例表Id { get; set; } ...

    GreenDao保存实体类套实体类

    本示例“GreenDao保存实体类套实体类”旨在演示如何在GreenDao中处理嵌套的实体类,即一个实体类包含另一个实体类的情况。 首先,我们需要理解GreenDao的基本工作原理。GreenDao通过生成Java源代码来提供对数据库的...

    Oracle数据库表生成C#实体类

    Oracle数据库是世界上最流行的数据库管理系统之一,它被广泛用于企业级数据存储和管理。...在实际应用中,开发者还需要考虑如何适配不同的数据库架构,以及如何优化实体类设计以满足特定业务需求。

    java实体类字段自定义-数据库字段和程序实体类属性不一致解决方案.docx

    Java 实体类字段自定义-数据库字段和程序实体类属性不一致解决方案 Java 实体类字段自定义是指在 Java 开发中,实体类的字段与数据库表的字段不一致的问题。这种情况下,需要实现实体类字段的自定义,以便与数据库...

    实体类生成器,用于C#实体类生成

    五、C#中的实体类设计原则 1. 命名规范:遵循C#的命名规则,如首字母大写的驼峰命名法。 2. 属性访问控制:一般使用private修饰属性的后台字段,public修饰属性的getter和setter。 3. 数据验证:可添加数据验证特性...

    自动生成实体类....

    本篇文章将深入探讨如何自动生成SQL数据库用户表的所有实体类,并介绍相关的工具和技术。 首先,理解实体类的基本概念至关重要。实体类是业务对象的编程表示,它们通常包含与数据库表字段相对应的属性。例如,如果...

    C#自动生成实体类

    在IT行业中,实体类是软件开发中的重要组成部分,特别是在基于对象的编程语言如C#中。实体类通常代表数据库中的表,它们封装了数据并提供了操作这些数据的方法。手动创建和维护这些实体类可能会非常耗时,尤其是在...

    注解框架实体类映射

    在SSH2框架中,数据库表结构会根据实体类的设计和映射进行创建或更新,这通常通过Hibernate的SchemaExport工具完成。开发者可以使用这些SQL脚本来初始化数据库,确保数据模型与程序中的实体类一致。 在“注解框架...

    实体类&SQL生成工具

    实体类和SQL生成工具是一种高效开发辅助工具,它能够帮助程序员快速地生成各种编程语言(如VB、C#、Java)中的实体类,并自动生成对应的SQL语句,极大地提高了开发效率,减少了手动编写代码的工作量。 实体类是面向...

    C#实体类自动生成器

    在软件开发过程中,尤其是涉及到数据访问层的设计时,开发者经常需要创建与数据库表对应的实体类。这些实体类是用来封装数据库中的记录,以便于在代码中进行操作。"C#实体类自动生成器"是一个工具,它能根据数据库的...

    XML文件与实体类的互相转换

    "XML文件与实体类的互相转换" XML文件与实体类的互相转换是软件开发中的一种常见需求,特别是在调用别的平台接口时,通常都是返回XML数据,然后需要将这些数据转换成实体,以便于更方便的操作。下面将详细介绍XML...

    C#数据库实体类生成工具

    实体类是面向对象编程中的一种设计模式,它代表数据库中的一个表,每个属性对应表的列,使得开发者可以更方便地进行CRUD(创建、读取、更新、删除)操作。通过自动化的实体类生成工具,开发者无需手动编写这些类,极...

    实体类生成器

    自己编写的实体类生成器 支持数据库oracle 和 SqlServer 支持实体类生成程序:C# 和 java *注意: 电脑上一定要安装 framework才能运行本软件 有什么问题请联系qq:910579826 备注添加:实体类生成器 1. 用户首先...

    SqlSugar生成实体类Demo

    本示例“SqlSugar生成实体类Demo”将重点介绍如何利用SqlSugar的T4模板生成实体类,以及进行基本的CRUD(创建、读取、更新、删除)操作。 首先,我们要理解什么是T4模板。T4是Visual Studio提供的一种文本模板技术...

    mysql自动生成实体类

    在生成的实体类中,可能会包含一些特殊的注解,如`@Entity`(表示这是一个实体类)、`@Table`(指定对应的数据库表名)、`@Id`(表示主键)、`@GeneratedValue`(自增主键策略)等,这些都是ORM框架所使用的。...

    自动创建实体类

    在软件开发过程中,尤其是涉及到与数据库交互的应用程序,实体类(Entity Class)是常见的概念,它们代表了数据库中的表,并提供了对象-关系映射(ORM)的基础。实体类允许开发者用面向对象的方式来操作数据,而无需...

    .net实体类自动生成工具

    这个.NET实体类自动生成工具,正如其标题所示,专为SQL Server数据库设计。它能够快速分析数据库结构,将表的信息转换为C#代码,生成对应的实体类。开发者只需要指定数据库连接信息,工具就能自动识别表和视图,然后...

    任意XML转实体类 实体类 转XML 方法 JAVA

    描述中提到的"XML节点名称要与Bean相同",这意味着在设计实体类时,应当使类字段名与XML节点名称保持一致,这样在映射过程中可以更直观和方便。例如,XML中的`&lt;name&gt;`节点应对应Java Bean中的`private String name;`...

    Java实体类字段生成工具类-将数据库表列字段转为Java实体类驼峰字段

    1、在Java开发中,常常需要将数据库表列字段换成Java实体类字段。但是手动实现这个转换过程比较慢,且容易出错,影响开发效率。为了解决这个问题,开发了这个Java实体类字段生成工具类。 2、该工具类可以将数据库表...

Global site tag (gtag.js) - Google Analytics