首页 > 数据库 >数据库设计心得

数据库设计心得

时间:2023-11-09 19:22:48浏览次数:42  
标签:需求 数据库 雇主 外键 设计 心得 主键

我们的项目是基于隐私包含的众包系统。在设计之前,我们先把需求搞清楚。

业务需求

雇主能发布需求,工人能接单,完成任务。哈哈,听上去还挺简单的,但涉及到雇主取消需求,雇主取消任务,工人根据标签查询需求,工人提交工作文件,工人取消订单这些功能。

初步设计

确定了工人,雇主,管理员,需求,订单,对话,这几个实体之后,根据范式的知识,我们先把第一稿的数据库完成,把每个实体的字段都写下来,以及确定主键和外键。

根据需求走查

然后就是比较痛苦的地方,检查每个功能是否有数据库的字段支撑。对于雇主需求实体,我们就没有想到要加一个 “状态” 字段,表示需求的进行状态,再比如,对话表的 “需求id”字段根本不需要。

建表

后面的几个步骤就很简单了,指定字段的类型,主键外键的名称,用工具自动生成sql代码就好了。这里需要注意的点就是,sql外键添加失败,应该是两个相关联的字段类型不一致,改一下模型就好了。

整个数据库设计比较耗费时间,我花了两个上午完成了初稿之后,又花了一个上午进行需求走查,一个上午确定类型,也有一些收获。

  1. 表的字段要完全依赖于主键,这样设计出来不会混乱。
  2. 不要把一份数据存两遍。我们把 雇主表 工人表抽象成一个用户表,用户表主要存储手机号,电话这样的信息,避免重复。
  3. 要加外键约束。这还是问的老师,保证数据的完整性吧,后续开发可能会有些麻烦,要加很多的 异常处理。
  4. 表的设计是要完成业务的,不能脱离业务。
  5. 表的设计要结合实际的技术。我们计划,文件使用minio存储 ,文件表存文件的url即可访问文件。

最后,这是我们的设计结果。

标签:需求,数据库,雇主,外键,设计,心得,主键
From: https://www.cnblogs.com/sjk1213/p/17822565.html

相关文章

  • 一文读懂 Fabarta ArcGraph 图数据库丨技术解读
    导读 本文将深入探讨图数据库的发展历程、Fabarta自研图数据库ArcGraph的产品优势,以及 ArcGraph 如何充分利用图和向量数据库的融合优势,为AI技术的发展提供强大支持。图数据库最早诞生于上世纪六七十年代,起源于对复杂网络结构的理解和处理需求。随着社交网络、知识图谱......
  • 信息安全系统设计与实现 学习笔记9
    信号和信号处理信号和中断的统一处理“中断”是从I/O设备或协处理器发送CPU的外部请求,它将CPU从正常执行转移到中断处理(1)一个“进程”就是一些列活动(2)“中断”信号进程中断信号的来源硬件信号异常信号其他进程信号信号在Unix/Linux中的常见用法Unix/Linux中的信号处......
  • 【故障公告】数据库服务器今年第六次 CPU 100% 故障
    自9月第五次数据库服务器CPU100%故障之后,今天下午又出现数据库服务器CPU100%故障,是今年的第六次。自从园子2013年搬上阿里云,几乎每年都会遇到数据库服务器CPU100%问题,但今年创造了新记录,一年还未结束,却已遭遇六次,最困难的一年,连故障也过来凑热闹。今天的故障发生于14......
  • neo4j图数据库
    目录neo4j说明docker-compose安装命令创建节点创建节点关系创建节点并建立关系更新节点和关系查询节点和关系删除节点及关系golang执行cypher命令--创建节点golang执行cypher命令2--创建节点+建立关系neo4j说明 Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而......
  • C# EntityFramework+SQLite CodeFirst 创建数据库和数据表
    1、安装NuGet包System.Data.SQLite(System.Data.SQLite.Core、System.Data.SQLite.EF6、System.Data.SQLite.Linq)SQLite.CodeFirstEntityFramework2、配置App.config<?xmlversion="1.0"encoding="utf-8"?><configuration><configSe......
  • 盘点U-Mail邮件系统安全设计
    在当今社会,电子邮件已经成企业沟通和信息传递重要的手段之一,是企业办公中不可或缺的一部分。但是由于企业邮件服务器端口对外开放、企业邮件安全管理能力不足、邮件内容敏感性高等特点,电子邮件也成为了网络攻击者进行网络钓鱼、恶意软件传播和勒索攻击的主要对象。根据麦赛邮件安全......
  • 大型数据库实验三
    实验三--熟悉常用的HBase操作1、列出HBase所有表的信息,例如表名2、在终端打印出指定的表的所有的就数据3、向已经创建好的表中添加或者删除指定的列族或列添加数据:删除数据:4、清空指定的表的所有的数据5、统计表的行数6、将下面的关系数据库,转换为合适的hbase格......
  • C#winform学习3(C#连接MySQL数据库)
    需要引用MySQL.data.dll文件1.右键引用,如果没有MySQL.data.dll文件则选择浏览一般这个文件会存放在C:\ProgramFiles(x86)\MySQL\ConnectorNET8.0\Assemblies如果没有,需要去官网自己下载即可,参考:visualstudio2019使用MySQL.data的引用-知乎(zhihu.com)官网下载地址:MySQ......
  • 谷歌正为 Android 平台 Chrome 浏览器设计“Polish”主页
    敢兴趣的小伙伴们,可以在浏览器中访问以下网址启用:chrome://flags/#enable-surface-polish据悉,相关主页也存在于Chrome的稳定版本中,但只有带有低对比度的方形搜索栏的早期版本,而最完整的版本可以在ChromeDev和Canary中找到。​​‍​​......
  • 谷歌正为 Android 平台 Chrome 浏览器设计“Polish”主页
    敢兴趣的小伙伴们,可以在浏览器中访问以下网址启用:chrome://flags/#enable-surface-polish据悉,相关主页也存在于Chrome的稳定版本中,但只有带有低对比度的方形搜索栏的早期版本,而最完整的版本可以在ChromeDev和Canary中找到。​​‍​​......