`
mengdejun
  • 浏览: 400719 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

主从表设计和编程

    博客分类:
  • Dat
阅读更多

主从表操作是数据库相关编程中绕不过去的技术之一。为了减少数据冗余、满足数据库的范式要求,必需考虑建立主表和从表,从以外键关联。主从表可以看做是对母表进行纵向切割而得到的。

    由于表个数的增加,和外键关系的存在(“关系型数据库”的名称就是从这里来的吧?),使操作主从表比操作单表复杂了很多。编程的复杂度和工作量也成倍增加 - 至少增加了3倍。

    主从表从表设计和编程角度一般可以这么做:

 

    1,主表和从表分离,以外键关联(dedecms)。

    这是最常见和典型的做法,数据库理论的教科书上一般就是这么讲的。这样做的好处是,充分利用关系型数据库的优点,从表可以有多个字段,可以保存大量的数据和记录个数。而且由于客观上实现了表的纵向切割,使数据存储结构得到了优化。但由于牵扯到2个表,所以编程时,对表的编辑(增、删、改、查)总是涉及到二个步骤,还会引起主表和从表操作的原子性问题,即:主表数据操作完成后,同一个事务里,从表的关联数据操作是否也全部完成了?在一些关键行业的关键业务里,主从表操作必需以事务的方式来操作,主表和从表操作,要么全部完成,要么一个都不完成,只要其中一个出错,事务必需回滚到未操作前的状态(这一般是“事务”机制自动完成的)。所以编码考虑的因素很多。

 

    2,另一种变通的方法是,从表的数据存贮在主表同一条记录的另一个字段里,用分隔符连接起来。

    这样以来,不用建立主从表之间的外键关联 - 命存一线,本身就“关联”起来了。好处是编码简单。但会引起以下问题:
    (1)分隔符可能与保存的数据中的字符串重复,引起混淆;
    (2)当子表中的记录过多和/或过长的时候,显得愚笨,并会有存储上的问题;
    (3)不适合记录是二进制数据的从表。
    (4)从表的字段多于一个时,基本很难实现。

    既然是变通的方法,这种方法仅适合部分情况:从表数据类型一般是字符串型,且数据很短;从表记录很少,不需要通过建立索引来提高检索效率。从表的字段也必需较少,最好就一个字段,多于2个,编程的某些细节就反而复杂了。

    所以,无果有十足的把握,或确信从表不会再重构的情况下,才采用第二种办法。否则还是乖乖按照数据库理论来做,以减少可能发生的风险,保证项目进度。

 

 

 

分享到:
评论

相关推荐

    计算机USB系统原理及其主从机设计

    介绍USB协议原理和设计USB系统的软件编程和硬件设计

    CC-Link 主从程序.zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例

    CC-Link 主从程序.zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例CC-Link 主从程序.zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例CC-Link 主从程序.zip三菱PLC编程案例源码资料...

    400和300PROFIBUS主从通讯程序.zip西门子PLC编程实例程序源码下载

    400和300PROFIBUS主从通讯程序.zip西门子PLC编程实例程序源码下载400和300PROFIBUS主从通讯程序.zip西门子PLC编程实例程序源码下载400和300PROFIBUS主从通讯程序.zip西门子PLC编程实例程序源码下载400和300PROFIBUS...

    西门子300主从站程序例.zip西门子PLC编程实例程序源码下载

    西门子300主从站程序例.zip西门子PLC编程实例程序源码下载西门子300主从站程序例.zip西门子PLC编程实例程序源码下载西门子300主从站程序例.zip西门子PLC编程实例程序源码下载西门子300主从站程序例.zip西门子PLC编程...

    s5_s7 profibus 主从通讯组态.zip西门子PLC编程实例程序源码下载

    s5_s7 profibus 主从通讯组态.zip西门子PLC编程实例程序源码下载s5_s7 profibus 主从通讯组态.zip西门子PLC编程实例程序源码下载s5_s7 profibus 主从通讯组态.zip西门子PLC编程实例程序源码下载s5_s7 profibus 主从...

    S7-200 modbus主从站标准例程.zip西门子PLC编程实例程序源码下载

    S7-200 modbus主从站标准例程.zip西门子PLC编程实例程序源码下载S7-200 modbus主从站标准例程.zip西门子PLC编程实例程序源码下载S7-200 modbus主从站标准例程.zip西门子PLC编程实例程序源码下载S7-200 modbus主从站...

    S7-300_CPU之间的PROFIBUS主从通讯配置.zip西门子PLC编程实例程序源码下载

    S7-300_CPU之间的PROFIBUS主从通讯配置.zip西门子PLC编程实例程序源码下载S7-300_CPU之间的PROFIBUS主从通讯配置.zip西门子PLC编程实例程序源码下载S7-300_CPU之间的PROFIBUS主从通讯配置.zip西门子PLC编程实例程序...

    usb固件主从结构开发

    USB固件开发通过研究USB的主从结构设计和实现的该产品

    基于FPGA的机床数控系统主从控制器通信研究.pdf

    针对机床数控系统主从式控制结构的...先出(FIFO)存储器等通信接口功能,在此基础上完成主控制器和从控制器的串行通信软件设计。通 信实验结果表明,文中提出的解决方案,实现了机床数控系统主从控制器间的串行通信。

    单片机主从控制系统的软硬件设计.doc

    单片机主从控制系统的软硬件设计 摘要:主从控制中,单片机的通信由上位机(单片机)控制。主机向各个从机发送命 令或者接受从机反馈的信息,主机有权修改从机的参数,接受从机的数据,还可以查看 从机的状态,可以说...

    EDA/PLD中的可编程ASIC器件主从式下载开发系统的设计

    当前在EDA领域,只要具备台式或笔记本电脑并装有工具软件,就可以方便地对可编程ASIC(CPLD/FPGA)进行设计开发,在系统可编程(ISP)器件为我们提供了这种便利条件。ISP方式虽然可以用一根下载电缆代替了编程器,但...

    S7-200PLC与单片机间ModBus主从通信方式.pdf

    文对s7—200的ModBus—RTU主站及从站通信指令,羊片机ModBus通信编程以及MCS51单片机 基于Preteus与VSPD虚拟串口的仿真调试技术等进行了较详细的介绍。文中给出的系统设计方 案可给PLC的功能扩展应用提供借鉴。

    学生成绩管理系统的设计与实现

    实现了数据库表的浏览,记录的添加、删除和修改,报表的生成,实现了多数据库表的连接操作,实现了多条件查询和模糊查询,并灵活实现了对不可更新查询结果集的更新操作,实现了主从表操作,实现了密码维护功能,最后...

    图书馆管理系统毕业设计

    实现了数据库表的浏览,记录的添加、删除和修改,报表的生成,实现了多数据库表的连接操作,实现了多条件查询和模糊查询,并灵活实现了对不可更新查询结果集的更新操作,实现了主从表操作,实现了密码维护功能,最后...

    嵌入式横机控制系统通信设计.pdf

    根据嵌入式横机控制系统的...利用FPGA的可编程、设计灵活的特点,将NCUC—Bus协议集成于FPGA 内部,完 成NCUC.Bus的通信接口设计,实现了主从控制器间高速同步通信。实验证明该设计能够满足横机 控制系统通信需求。

    DELPHI 5编程实例与技巧

    本书共分三部分、16章,主要介绍Delphi 5集成开发环境,对象Pascal语言、组件、通用编程技术、动态链接库、多线程、多媒体编程、数据库编程、网络编程和Windows API编程等。 目 录 前言 第一部分 Delphi编程基础 ...

    基于单片机通信的远程温控系统设计报告

    设计综合利用单片机的可编程性,灵活利用其中的2个定时计数器,完成温度采集、运算控制、输出显示、主从机通信等功能。 DS18B20能够较高精度和较大范围的进行温度测量,保证了系统设计的精度要求;运算控制部分主要...

    周立功EEPROM串口编程程序(包括单片机DP51和PC程序)

    周立功EEPROM串口编程程序(包括单片机DP51和PC程序),可以通过这个例子了解主从通信系统的设计流程

    主从博弈的智能小区定价策略及电动汽车调度策略附matlab代码+运行结果.zip

    4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 5.作者介绍:某大厂资深算法工程师,从事Matlab算法仿真工作10年;擅长智能优化算法、神经网络预测、信号处理、元胞...

    extjs 设计模式 operamasks 底层框架

    自己的理解,重写了公司底层代码,用的设计模式做多就是单例和模板方法,可以看下实际公司是怎么来用的,还有就是面向接口编程,如果给你在我现在这个基础上来改,自己去写主从表,看可不可以写出来.自己如何认真的...

Global site tag (gtag.js) - Google Analytics