qqqwwweeerrrttt123
IT-TOMCAT
采纳率0%
2016-01-20 15:04 阅读 1.4k

数据库联合主键问题,各位大神过过眼

急救,如果这数据库中使用工号(不可使用递增)和日期做联合主键,来确定查询数据的唯一性,我该怎么处理

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-01-20 15:15

    如果你是开发实际项目,建议你的主键不要和任何业务相关,万一你的老板说,工号和日期也允许重复,或者你需要分库并库,你就给自己挖坑了。
    你只要把工号日期做一个唯一约束就可以了。

    点赞 3 评论 复制链接分享
  • qqqwwweeerrrttt123 IT-TOMCAT 2016-01-21 00:40

    #机构信息表
    T_GX_JGXX = Table('T_GX_JGXX',con.metadata,
    Column('YXJGDM', String(30), nullable=False,doc='银行机构代码'),
    Column('NBJGH', String(30), nullable=False,primary_key=True,doc="内部机构号" ),
    Column('YXJGMC', String(200), nullable=False,doc="银行机构名称" ),
    Column('JRXKZH', String(30), nullable=False,doc="金融许可证号" ),
    Column('JGLB', String(30), nullable=False, doc="机构类别:其他,总行,分行,支行,网点 "),
    Column('YZBM', String(6), nullable=False, doc="邮政编码"),
    Column('WDH', String(30), doc="网点号" ),
    Column('YYZT', String(10), nullable=False,doc="营运状态:营业,停业,被合并" ),
    Column('CLSJ', String(8), nullable=False, doc="成立时间"),
    Column('JGGZKSSJ', String(6),doc="机构工作开始时间" ),
    Column('JGGZZZSJ', String(6),doc="机构工作终止时间" ),
    Column('JGDZ', String(400),nullable=False,doc="机构地址" ),
    Column('FZRXM', String(100),doc='负责人姓名'),
    Column('FZRZW', String(60),doc='负责人职务'),
    Column('FZRLXDH', String(30),doc='负责人联系电话'),
    Column('CJRQ',String(8),nullable=False,primary_key=True,doc='采集日期'),
    info={'doc':'本表只报送实际发生业务的实体机构,包括业务中心,不报送虚拟机构。上级管理机构名称(SJGLJGMC)应为该表中存在的机构,如果是虚拟机构,则应当归并到同级的实体>机构中'},
    )

    #员工表
    T_GX_YGB = Table('T_GX_YGB',con.metadata,
    Column('GH', String(30), nullable=False,primary_key=True,doc='工号'),
    Column('YXJGDM', String(30), nullable=False,doc='银行机构代码'),
    Column('JRXKZH', String(30), nullable=False,doc="金融许可证号" ),
    Column('NBJGH', String(30), ForeignKey('T_GX_JGXX.NBJGH'), nullable=False, doc="内部机构号"),
    Column('YXJGMC', String(200), nullable=False,doc="银行机构名称" ),
    Column('XM', String(30), nullable=False, doc="姓名"),
    Column('SFZH', String(30), nullable=False, doc="身份证号:隐私,监管部门变形"),
    Column('LXDH', String(30), doc="联系电话:区号-座机号码/手机"),
    Column('WDH', String(30), doc="网点号"),
    Column('SSBM', String(60), nullable=False, doc="所属部门"),
    Column('ZW', String(60), nullable=False, doc="职务"),
    Column('YGZT', String(30), nullable=False, doc="员工状态"),
    Column('GWBH', String(60), doc="岗位编号"),
    Column('CJRQ', String(8), nullable=False,primary_key=True, doc="采集日期"),
    如上所述 如果下表只用上表的“内部机构号”做外键,但是需要采集时间一起确定数据准确性,我该如何处理

    点赞 评论 复制链接分享
  • beau_lily 太平牛市 2016-01-21 02:39

    1、不建议做什么外键 不然到时候删除主表数据的时候要判断从表是否有主表数据
    2、你用查询确定唯一性 要么给相关的联合字段做唯一约束 要么增加条件

    点赞 评论 复制链接分享

相关推荐