mysql建表考虑那些,怎么建

news2024/11/28 13:38:44

在使用MySQL进行数据库建表时,需要考虑以下几点:

1 数据库设计

在建表前,需要进行数据库设计,包括确定数据库的名称、表的数量、表之间的关系等,这是建表的前提。

2 表的命名规范

建表时需要注意表名的命名规范,最好使用有意义的表名,避免使用含有特殊字符或关键字的表名。

3 字段类型选择

在创建表字段时需要选择合适的字段类型,包括整型、字符型、日期型等,需要根据实际需求选择。

4 字段长度设置

对于字符型字段,需要根据实际需求设置字段长度,避免造成数据的浪费或存储不足。

5 主键设计

需要为每个表设置主键,主键可以保证数据的唯一性,在一些查询和操作中也有重要作用。

6 索引设置

在建表时需要考虑到表的查询效率,可以根据实际需求为表创建索引,提高查询效率。

7 字段默认值

在创建表字段时需要为字段设置默认值,这样可以保证在插入数据时不会因为缺少某些字段而导致失败。

8 字段约束

在创建表字段时需要进行字段约束的设置,包括非空约束、唯一约束等,这样可以保证数据的完整性。

在进行MySQL数据库建表时需要考虑多方面因素,合理设计数据库结构、表字段类型及长度,以及注意字段约束和索引的设置,这样可以保证数据的质量和查询效率。

1.注意选择存储引擎,如果需要支持事务,选择InnoDB

2.注意字段类型的选择,对于日期类型,如果是时分秒选择datatime,如果是只记录年月日使用date类型,对于字符类型的选择,固定长度字段选择char,不固定的选择varchar,varchar比char节省空间,但是效率没有char高。对于内容介绍类的长广文本字段使用text或longtext类型,如果存储图片等二进制数据使用blob或者longblob类型,对于金额数字建议使用decimal;对于数值类型的字段在确保取值范围的前提下尽量使用占用空间较小的类型

3.主键字段建议使用自然主键,不要带有业务意义

4.如果要存储text或者blob字段,建议分表,使用id等字段进行关联

5.尽量不要定义外键,保证表的独立性,可以存在外键意义的字段。

6.设置字段默认值,如状态时间创建人等

7.注意每个字段写清楚注释

8.注意字段的非空,唯一等约束

我们设计表及其字段之间的关系, 应尽量满足第三范式。但是有时候,可以适当冗余,来提高效率。比如以下这张表

在这里插入图片描述

当然,这只是个小例子哈,大家开发设计的时候,要结合具体业务分析哈。

尽可能使用not null定义字段

如果没有特殊的理由, 一般都建议将字段定义为 NOT NULL 。

为什么呢?

  • 首先, NOT NULL 可以防止出现空指针问题。
  • 其次,NULL值存储也需要额外的空间的,它也会导致比较运算更为复杂,使优化器难以优化SQL。
  • NULL值有可能会导致索引失效
  • 如果将字段默认设置成一个空字符串或常量值并没有什么不同,且都不会影响到应用逻辑, 那就可以将这个字段设置为NOT NULL。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/975910.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot的Web开发案例过程讲解-项目准备

基于SpringBoot的Web开发案例过程笔记-项目准备 1)环境搭建【1】准备数据库表【2】创建Springboot项目并引入相关依赖【3】配置application.properties文件【4】创建相关的包和类 2) 三层架构工作流程3)开发规范-Restful4)相关的注解5)项目开…

【数据结构与算法】栈

文章目录 前言一:基本概念1.1 介绍1.2 入栈和出栈示意图1.3 栈的应用场景 二:使用数组模拟栈2.1 思路分析2.2 代码实现2.3 测试 三:使用栈模拟中缀表达式计算器3.1 整体思路3.2 验证32*6-2133.2.1 定义栈3.2.2 返回运算符的优先级3.2.3 判断是…

如何通过Instagram群发消息高效拓展客户?

之前小S有跟大家说过关于独立站+Instagram如何高效引流,发现大家都对Instagram的话题挺关注的。Instagram作为全球最受欢迎的社交媒体之一,对于许多商家和营销人员来说,Instagram是一个不可忽视的营销平台,他们可以通过…

痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)

https://www.cnblogs.com/henjay724/p/13770137.html 大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是J-Link工具下i.MXRT的串行NOR Flash下载算法设计。 在i.MXRT硬件那些事系列之《在串行NOR Flash XIP调试原理》一文中,痞…

通过rabbitmq生成延时消息,并生成rabbitmq镜像

通过rabbitmq生成延时消息队列,并生成rabbitmq镜像 整体描述1. 使用场景2. 目前问题3. 前期准备 具体步骤1. 拉取镜像2. 运行镜像3. 安装插件4. 代码支持4.1 config文件4.2 消费监听4.2 消息生产 5. 功能测试 镜像操作1. 镜像制作2. 镜像导入 总结 整体描述 1. 使用…

MySql学习笔记08——事务介绍

事务 基本概念 事务是一个完整的业务逻辑,是一个最小的工作单元,不可再分。 一个完整的业务逻辑包括一系列的操作,这些操作是整个业务逻辑中的最小单元,这些操作要么同时成功,要么同时失败。 由于只有DML语句中才会…

C++那些事之Step by step上手grpc

C那些事之grpc小Demo github上比较火的rpc有grpc、brpc,腾讯内部比较牛逼的trpc等等,这些rpc支持不同的语言、不同平台。今天来聊聊如何使用grpc,从一个简单的demo入手,整个项目使用CMake构建,一个非常标准的rpc项目管…

公园气象站——观测实时气象,保障游客安全

公园气象站是一种用于监测和记录气象数据的系统。在公园内设置公园气象站可以帮助我们了解公园内的气候状况,包括空气湿度、空气温度、风速和风向等参数。这些数据是公园管理、游客安全和环境保护等方面重要的辅助依据。 负氧离子监测:负氧离子是指空气…

Serverless Framework 亚马逊云(AWS)中国地区部署指南

Serverless Framework 亚马逊云(AWS)中国地区部署指南 Serverless Framework 亚马逊云(AWS)中国地区部署指南 前言前置准备 1. 账号的注册2. 全局安装 serverless3. 设置你的系统环境变量4. 设置部署凭证 快速部署一个 hello world 创建入口函数 index.js event 参数context 参…

学习Bootstrap 5的第四天

目录 表格 基础表格 实例 条纹表格 实例 带边框表格 实例 有悬停效果的行 实例 黑色/深色表格 实例 黑色/深色条纹表格 实例 可悬停的黑色/深色表格 实例 无边框表格 实例 上下文类 可用的上下文类: 实例 表头颜色 实例 小型表格 实例 响应…

SpringBoot实现Excel导入导出

话不多说&#xff0c;直接上代码 依赖文档 找到pom文件&#xff0c;如下图所示 引入需要的依赖 <!-- hutool--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.20</version>&…

如何利用顶级AI简历工具优化求职过程

追求梦想工作既是挑战又是机会。而在这一竞争激烈的职场中&#xff0c;拥有一份完美的简历成为与雇主初次互动的黄金名片。但问题是&#xff0c;如何才能使简历真正脱颖而出&#xff1f; 为何简历如此关键? 很多时候&#xff0c;简历的影响力被忽视&#xff0c;尽管它实际上…

2023年下半年广州/深圳软考(中/高级)认证报名,当然弘博创新

软考是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职称资格考试。 系统集成…

新晋开源项目 DisJob 加入 Dromara 社区,分布式任务调度框架

作者简介 网名Ponfee&#xff0c;Dromara开源组织成员&#xff0c;dromara/disjob项目作者。在国内多个一线大厂待过&#xff0c;有过后端、全栈、大数据等相关工作经历。 关于Disjob Disjob是天然为支持分布式长任务执行而设计的&#xff0c;它除了具备常规的任务调度功能外…

K210-关于K210基本操作

1.点亮RGB灯 from modules import ybrgb RGB ybrgb() #设置RGB颜色&#xff1a;RGB.set(r, g, b) #参数r控制红灯开关&#xff0c; #参数g控制绿灯开关&#xff0c; #参数b控制蓝灯开关&#xff0c; #输入0表示关闭&#xff0c;输入1表示开启。 RGB.set(1, 0, 0)2.按键功能 …

【Arduino实验笔记】机械臂篇(二) 开关控制LED灯

文章目录 前言硬件介绍实物接线图软件实现库函数介绍程序代码 下一篇的目标总结 前言 本章节介绍如何通过按键控制LED灯&#xff0c;在上一章节中&#xff0c;我们学习了如何控制IO输出电平。而本章节&#xff0c;我们将学会如何读取IO输入的电平。 硬件介绍 观察独立按键&am…

Taurus: 面向机器学习的数据面架构

日益复杂的网络和多样化的工作负载要求网络内置更多的自动化决策能力&#xff0c;通过可编程网络设备在用户面支持机器学习工作负载就是一个可能的选项&#xff0c;本文提出了一种支持用户面推理的架构设计&#xff0c;相对控制面机器学习的性能有数量级的提升。原文: Taurus: …

联想集团财报不及华尔街预期,财务业绩恐将继续恶化

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 华尔街对联想集团财报的预测 在联想集团&#xff08;00992&#xff09;公布2024财年第一季度财务业绩之前&#xff0c;华尔街分析师就曾预测&#xff0c;联想集团的收入和利润将实现强劲增长。 具体而言&#xff0c;根据S&…

VB6.0 设置窗体的默认焦点位置在 TextBox 中

文章目录 VB6.0 窗体的加载过程确定指针的焦点位置添加代码效果如下未设置指定焦点已设置焦点 VB6.0 窗体的加载过程 在VB6.0中&#xff0c;窗体&#xff08;Form&#xff09;加载时会触发多个事件&#xff0c;这些事件按照特定的顺序执行。下面是窗体加载过程中常见事件的执行…

高忆管理:光刻胶概念强势拉升,同益股份、格林达涨停

光刻胶概念5日盘中强势拉升&#xff0c;截至发稿&#xff0c;同益股份、格林达涨停&#xff0c;波长光电、晶瑞电材涨超7%&#xff0c;容大感光涨逾5%&#xff0c;华懋科技、茂莱光学、苏大维格、南大光电等均走强。 音讯面上&#xff0c;据新加坡《联合早报》网站9月2日报导&…