经验-设计表结构

冗余设计

冗余设计一

一个对象关联另一个对象时,如果另一个对象的名称不经常变化且会有频繁展示的需求那就把另一个对象的名称冗余存储在对象表中。

对扩展开放,对修改关闭

一个课程会关联多种内容,例如:视频,考试,图文课程和内容的关系是多对多

  • 方案一:
    课程和视频建一张关联表
    课程和考试建一张关联表
    课程和图文建一张关联表
  • 弊端:每新增一种内容都要修改源代码,比如新增操作代码需要再添加if判断是否是新增的哪一种类型,修改同理
  • 方案二:
    只建立一张关联表通过类型区分不同的内容
    例如:Item元素表,itemId和itemType字段
    itemId存储关联内容的id,itemType存储关联内容的类型
    此时每新增一种内容只要在itemType中新增一种类型即可,新增操作的代码不需要做任何改变,修改同理

其它

市、县、镇3张表进行关联

  • 方案一:
    市包含多个县,在县中保留一个市id
    县包含多个镇,在镇中保留一个县id
    弊端:查询市下所有的镇,需要先查询市下的县,再根据县查询镇只能一级一级查询
  • 方案二
    在镇中保留市的id,这样做可以直接通过市id查询出市下的镇
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL送水工设计可以包括以下字段:送水工ID、送水工姓名、送水工电话、送水工地址、送水工工龄、送水工每日送水次数、送水工每次送水数量、送水工每次送水费用等。其中,送水工ID作为主键,保证每个送水工的唯一性;送水工姓名、电话和地址用来记录送水工的基本信息;工龄可以记录送水工的工作经验和能力;每日送水次数、每次送水数量和费用可以用来统计送水工的工作量和收入情况。 在设计MySQL的时候,可以通过创建一个名为“送水工”的来实现。结构可以按照上述字段进行设计,通过定义字段的数据类型和约束条件来确保数据的准确性和完整性。送水工ID可以设为INT类型的主键,并且设置自增属性,以便自动生成唯一的ID;姓名、电话和地址可以设为VARCHAR类型,并设置合适的长度限制;工龄可以设为INT类型;每日送水次数、每次送水数量和费用可以设为INT或DECIMAL类型,根据实际情况来选择合适的数据类型。 此外,还可以根据具体的业务需求来进行其他的设计,例如可以加入送水工的工作时间、休假情况等字段,以便对送水工的工作情况进行全面的管理和统计。总的来说,设计MySQL送水工需要综合考虑业务需求和数据特点,以确保设计能够满足业务的要求并且保证数据的准确性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值