`
october731
  • 浏览: 85793 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

讨论 数据库建表中存在数据的互相包含情况,这样合理吗?

 
阅读更多
    做酒店信息系统管理的,之前的程序员在设计客人信息表和会员信息表的时候,采用的是这样的方法:客人信息表主键:GuestNo,表中有一个字段CardNo用来表示会员卡号;会员信息表主键CardNo,而表中又有一个字段GuestNo用来表示这个会员卡号表示的客人编号。我从一开始接触到这个的时候就觉得这个不合理了,但是她们一直都认为这个必须要这样做。我认为只需要在一张表中包含另外的一个表的主键信息就够了,没有必要这样互相包含,也没有意义。比如,直接在会员卡信息表里面包含客人编号就行了,那么客人信息表就只记录客人的基本信息(如地址、姓名等等之类);或者在客人信息表里面包含会员卡号就行了,那么会员信息表就只包含会员卡的基本信息(比如会员卡积分、开卡酒店等等)。我的想法是这样,我实在是想不通之前的那种表的设计方法到底为什么要这么做,有什么必要?
分享到:
评论
1 楼 shevliu 2009-12-08  
出于性能等方面的考虑,适当的冗余是合适的。
实际项目中会有很多看似不满足某某规范的地方,一般总是出于其他方面的考虑,不必太教条化,合适就行。

相关推荐

    达梦数据库建表操作SQL语句大全.pdf

    达梦数据库是国产数据库产品中的佼佼者,它提供了完整的SQL语言支持,让用户可以方便地进行数据库的建表、数据操作以及维护等操作。以下是根据提供的文件内容,对达梦数据库建表操作SQL语句所涉及知识点的详细解析:...

    数据库建表原则-设计思想-查询优化

    ### 数据库建表原则详解 #### 一、原始单据与实体之间的关系 在数据库设计过程中,原始单据与实体之间的关系是理解数据结构的基础。根据业务需求的不同,这种关系可以表现为一对一、一对多或者多对多的形式。最...

    sql数据库建表建议

    SQL 数据库建表建议 数据库设计是软件开发中一个非常重要的步骤,而 SQL 数据库建表是数据库设计的核心内容。本文将从多方面探讨 SQL 数据库建表的注意项目,以帮助读者更好地理解数据库设计的要点。 首先,让我们...

    quartz各种数据库的建表语句

    Quartz是一款广泛使用的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Quartz中,任务和调度信息存储在数据库中,...同时,不要忘记在生产环境中备份数据,以免在执行建表脚本时出现意外情况。

    PUB数据库建表SQL

    PUB数据库建表SQL

    quartz集群各种数据库建表脚本

    "quartz集群各种数据库建表脚本" 提供了在不同类型的数据库中创建Quartz集群所需的表结构。基于quartz2.2.1版本,这个脚本应该包含了创建必要的调度表,如QRTZ_JOB_DETAILS、QRTZ_TRIGGERS、QRTZ_SIMPLE_TRIGGERS等...

    数据库建表-建约束-建外键.doc

    数据库建表是数据库设计中最基础且重要的一步。在实际应用中,建表的正确性将直接影响到后续的数据存储和查询效率。本文将从建表的角度出发,介绍了建表、约束、外键三者的关系和实现方法。 一、数据库建表 数据库...

    Oracle数据库建表空间

    oracle数据库建表空间 用户名 密码 需要在sys用户下建

    贷款系统数据库建表终版.pdf

    贷款系统数据库建表设计 在设计贷款系统数据库时,需要创建多个表来存储不同类型的数据。以下是贷款系统数据库建表设计的详细说明: 1. 客户表(Custom) 客户表用于存储客户的基本信息,包括客户姓名、用户名、...

    [指南]数据库建表和查询操作代码.doc

    本文将详细介绍数据库建表和查询操作的代码,包括基本表操作、数据查询、插入、删除、修改操作等。 基本表操作 ---------- 在数据库中,基本表是数据库的基础,基本表的操作是数据库操作的基础。基本表操作包括...

    数据库建表增加或删除字段

    在Oracle数据库中,如果一个表中存在某个字段已经不再被使用或者该字段需要被替换,那么可以通过`ALTER TABLE`语句来删除该字段。这一操作会永久地从表中移除指定的列,因此在执行之前需要确保该字段的数据确实不再...

    条码系统数据库建表.xlsx

    关于条码的数据库建表,条码系统用于扫描来完成仓库的上架下架收发货盘点追溯等功能,用户操作员分配权限。

    SQL数据库建表

    在IT行业中,数据库是存储和管理数据的核心工具,而SQL(Structured Query Language)则是与数据库交互的语言。T-SQL(Transact-SQL)是SQL的一个扩展,主要用于Microsoft SQL Server。本教程聚焦于“SQL数据库建表...

    SQL数据库建表建库语句

    SQL数据库建表建库语句 SQL SEREVER入门必备的第一个教学代码 仅供学习参考

    数据库建表快捷转换大小写.rar

    在数据库管理中,正确处理大小写对于数据的一致性和查询效率至关重要。特别是在SQL语言中,大小写的使用规则可能因不同的数据库管理系统(DBMS)而异。"数据库建表快捷转换大小写.rar" 提供的资源显然是为了帮助...

    数据库课程设计-在线蛋糕店数据库建表语句.sql

    sql语句 数据库课程设计-在线蛋糕店数据库建表语句.sql

    JS动态树分组的实现,数据库建表,JSP页面展示

    在IT领域,动态树结构是一种常见的数据展示方式,尤其在管理界面中,它能清晰地组织和层次化信息。本项目主要涉及JavaScript(JS)实现动态树分组、数据库建表以及JSP页面的展示。以下将详细阐述这些知识点。 **...

    activiti建表语句

    这些脚本通常包含在`activiti6.0Mysql数据库建表语句.sql`文件中,你可以使用MySQL客户端工具来运行它们。 建表语句将涉及创建上述提到的所有表以及可能的一些额外表,用于支持Activiti的高级功能,如表单、评论、...

    数据库建表

    通过对`tfluxtbl`表的深入分析,我们可以看到数据库建表不仅涉及基本的语法结构,还牵涉到对业务需求的理解、数据类型的合理选择以及性能优化的考虑。正确设计和实现数据库表,是确保数据准确存储和高效检索的基础,...

    SQLServer数据库建表、加字段、改字段模版

    SQLServer数据库建表、加字段、改字段模版

Global site tag (gtag.js) - Google Analytics