首页
学习
活动
专区
圈层
工具
发布

数据库主外建适用场景

主键和索引是不可少的,合理使用可以优化数据检索速度 焦点:数据库设计是否需要外键。这里有两个问题: 一、如何保证数据库数据的完整性和一致性; 二、创建外键对性能的影响。...正方观点: 1,由数据库自身保证数据一致性,完整性,更可靠,因为程序很难100%保证数据的完整性,而用外键即使在数据库服务器当机或者出现其他问题的时候,也能够最大限度的保证数据的一致性和完整性。...eg:数据库和应用是一对多的关系,A应用会维护他那部分数据的完整性,系统一变大时,增加了B应用,A和B两个应用也许是不同的开发团队来做的。...2,有主外键的数据库设计可以增加ER图的可读性,这点在数据库设计时非常重要。 3,外键在一定程度上说明的业务逻辑,会使设计周到具体全面。...2,用外键要适当,不能过分追求 3,不用外键而用程序控制数据一致性和完整性时,应该写一层来保证,然后个个应用通过这个层来访问数据库。

85950
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据库索引,真的越建越好吗?

    索引是提高关系型数据库查询性能的利器,但其并非银弹,必须精通其原理,才能发挥奇效。 InnoDB底层是如何存储数据的? MySQL把数据存储和查询操作抽象成了存储引擎。...针对长文本的搜索,可以考虑使用Elasticsearch等专门用于文本搜索的索引数据库 禁止SELECT *,而是SELECT必须字段,甚至可以考虑使用联合索引包含我们要搜索的字段,既能实现索引加速,又可避免回表...若你的查询条件经常会使用多个字段,则考虑针对这几个字段建联合索引;同时,针对多字段建立联合索引,使用索引覆盖的可能更大。若只会查询单个字段,考虑建单独的索引,毕竟联合索引保存了不必要字段也有成本。...数据库基于成本决定是否走索引 查询数据可直接在聚簇索引上进行全表扫描,也可走二级索引扫描后到聚簇索引回表。 MySQL如何确定走哪个方案?...尝试通过索引进行SQL性能优化时,请一定通过执行计划或实际的效果来确认索引是否能有效改善性能问题,否则增加了索引不但没解决性能问题,还增加了数据库增删改的负担。

    1.4K50

    python django 学习(一)数据库 目的根据已有BBS建立新的网站步骤

    内层文件说明: init.py:一个定义包的空文件(python3配置数据库需要特殊处理)。 settings.py:项目的主配置文件,数据库、图片等目录!...5.app01中models创建数据库中的表结构(执行相应语句会自动创建)**注意:django不能为你创建数据库,能为你创建数据库表,故数据库需要自己创建 1、创建数据库 2、创建model,继承自models.Model...类 静态字段 =models.CharField(max_length=50) 3、配置文件爱你setting里连接数据库,python3中需要在__int__中加入单独的pymysql包...4、python manage.py makemifrations python manage.py migrate 5、修改model 6、在执行步骤4 1.创建数据库 ?...4.1.运行python manage.py makemigrations改动创建迁移记录; 4.2.运行python manage.py migrate,将操作同步到数据库。 ? ?

    69930

    数据库索引,真的越建越好吗?

    索引是提高关系型数据库查询性能的利器,但其并非银弹,必须精通其原理,才能发挥奇效。 InnoDB底层是如何存储数据的? MySQL把数据存储和查询操作抽象成了存储引擎。...针对长文本的搜索,可以考虑使用Elasticsearch等专门用于文本搜索的索引数据库 禁止SELECT *,而是SELECT必须字段,甚至可以考虑使用联合索引包含我们要搜索的字段,既能实现索引加速,又可避免回表...若你的查询条件经常会使用多个字段,则考虑针对这几个字段建联合索引;同时,针对多字段建立联合索引,使用索引覆盖的可能更大。若只会查询单个字段,考虑建单独的索引,毕竟联合索引保存了不必要字段也有成本。...数据库基于成本决定是否走索引 查询数据可直接在聚簇索引上进行全表扫描,也可走二级索引扫描后到聚簇索引回表。 MySQL如何确定走哪个方案?...尝试通过索引进行SQL性能优化时,请一定通过执行计划或实际的效果来确认索引是否能有效改善性能问题,否则增加了索引不但没解决性能问题,还增加了数据库增删改的负担。

    1.3K50

    python django 学习(一)数据库 目的根据已有BBS建立新的网站步骤

    内层文件说明: init.py:一个定义包的空文件(python3配置数据库需要特殊处理)。 settings.py:项目的主配置文件,数据库、图片等目录!...)**注意:django不能为你创建数据库,能为你创建数据库表,故数据库需要自己创建 1、创建数据库 2、创建model,继承自models.Model类 静态字段 =models.CharField...(max_length=50) 3、配置文件爱你setting里连接数据库,python3中需要在__int__中加入单独的pymysql包 4、python manage.py makemifrations...python manage.py migrate 5、修改model 6、在执行步骤4 1.创建数据库 2....4.1.运行python manage.py makemigrations改动创建迁移记录; 4.2.运行python manage.py migrate,将操作同步到数据库。

    1K60

    python 操作 sqlite 数据库(建表, 增删改查)

    ''' conn.execute(sql_update, (email, user_id)) def main(): # 指定数据库名字并打开, 无此数据库, 自动创建 db_path...= 'web.sqlite' conn = sqlite3.connect(db_path) print("打开了数据库") # create(conn) # insert...conn, 3, '119@qq.com') select(conn, 'asdads', 'asd') # 必须用 commit 函数提交你的修改 # 否则你的修改不会被写入数据库...sqlitebrowser # 下载地址: 点此下载 连接数据库 用法: conn = sqlite3.connect(db_path) # db_path 即为数据库文件路径 # 若无此数据库, 会自动创建...用法: conn.commit() # 必须用 commit 函数提交你的修改, 否则修改不会被写入数据库 数据库连接的关闭 用法: conn.close() # 数据库使用结束后, 需要关闭数据库

    2K30

    mysql数据库:最全MySQL数据库设计建库、建表规范及经验(踩过坑才能积累经验!)

    数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求。...2.数据库设计 当看到项目后不能着急建库,要有一个过程。...4.16索引命名规范 对于数据库的维护建索引是很平常的事情,但是如果没有一个规范化的命名,我们对于一个表的诸多索引可能需要花上一段时间的了解。...(对于Student进行操作函数) 第二类命名:FN_[具体函数解释] 例如:FN_Spit(对字段进行拆分函数) 参考博客: 数据库设计规范 MySQL 规范 (数据库表设计规范) mysql的建表规范与注意事项...MySQL 数据库规范–设计篇 MySQL 数据库规范–开发篇 建表规范 很多是已经成文的内容,需要自己去理解,能看完这篇博客,相信你对数据库的设计,一定会有长进!

    1.1K30

    informix数据库建表语句_sqlserver创建数据库

    [b]1、安装[/b] a:先到IBM官网下载数据库(企业版本的12.10) b:执行id_stall程序进行安装 c:默认创建实例ol_informix1210 [color=darkred...命令增加对应 的表空间[/color] d:安装完成之后可以在C:\WINDOWS\system32\drivers\etc查看 hosts、services文件的配置信息 [b]2、创建数据库...[/b] a:打开实例(所有程序—IBM Informix 12.10—ol_informix1210) b:在dos命令窗口中输入命令 dbaccess 就可以进入该实例的数据库操作dos界面...c:dos界面上方有各种选项可以对数据库实例进行操作 d:选择“Database”进入数据库dos操作界面,在该界面可以对数据库进行各种操作 e:选择“Create”创建数据库,当输入数据库名称...[color=darkred]同时需要注意一定要设置Log选项,在该选项中默认为NONE,所以必须更改为 其他选项,则表示为该数据库增加了事务(因为不增加该项,默认创建的数据库 是没有事务的),

    1.3K20

    使用MySQL Workbench建立数据库,建立新的表,向表中添加数据

    初学数据库,记录一下所学的知识。我用的MySQL数据库,使用MySQL Workbench管理。下面简单介绍一下如何使用MySQL Workbench建立数据库,建立新的表,为表添加数据。...点击上图中的“加号”图标,新建一个连接, 如上图,先输入数据库的账号密码,帐号默认为root,填好密码后 点击“OK”,连接就建立好了,建立完成后,会出现一个长方形的框框,双击它,出现下图所示页面...点击图中的红圈里的按钮,新建一个Schema,即数据库(个人理解。。)...,修改一下Name 的值,如 mydatabase ,点击apply,再点apply,然后点finish 如下图所示 数据库就建好了!!!...一下刚刚建立好的数据库mydatabase,然后再创建表,不然会出错,右键点击Tables 然后点击Create new tables ,填写表名,以及表列的信息,之后点击 apply ,一张表就建完了

    12.3K30
    领券