手机版

百科生活 投稿

数据库表关系图怎么生成,sql server(<六>SQL关系表格模型QSqlRelationalTableModel)

百科 2026-02-13 17:15:56 投稿 阅读:8231次

关于【数据库表关系图怎么生成】,sql server,今天小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

  • 内容导航:
  • 1、数据库表关系图怎么生成:SQL SERVER如何创建数据库关系图
  • 2、第26篇 数据库(六)SQL关系表格模型QSqlRelationalTableModel

1、数据库表关系图怎么生成:SQL SERVER如何创建数据库关系图

工具/材料

SQL SERVER 2008

操作方法

首先打开SQL SERVER的管理工具,找到要操作的数据库,然后展开文件夹,选择数据库关系图,然后右键单击,选择新建数据库关系图,如下图所示

在弹出的添加表界面中,软件会自动列出当前数据库中具有关系的表,我们全选,然后点击添加,如下图所示

接下来管理工具就会自动为我们创建好关系图,如下图所示,他们之间的关系也自动用线连出来了

如果你想让关系图中的某个表的字段尽可能多的显示,需要选中表,然后右键单击,按如下图所示操作

在弹出的列选择界面中,你就可以对表中的列进行替换选择,如下图所示

选择完了以后,回到关系图,你会发现所操作的表增加了列,如下图所示

最后操作完以后,展开数据库关系图的文件夹,你会发现两个关系图文件,这是管理工具自动为我们添加的

2、第26篇 数据库(六)SQL关系表格模型QSqlRelationalTableModel

导语

QSqlRelationalTableModel继承自QSqlTableModel,并且对其进行了扩展,提供了对外键的支持。一个外键就是一个表中的一个属性和其他表中的主键属性之间的一对一的映射。例如,student表中的course属性对应的是course表中的id属性,那么就称属性course是一个外键。因为这里的course属性的值是一些数字,这样的显示很不友好,使用关系表格模型,就可以将它显示为course表中的name属性的值。

环境:Windows Xp + Qt 4.8.4+QtCreator 2.6.2

目录

  • 一、使用外键
  • 二、使用委托

正文

一、使用外键

1.新建Qt Gui应用,名称为relationalTableModel,基类为QMainWindow,类名为MainWindow。完成后打开relationalTableModel.pro项目文件,将第一行改为:

QT += coregui sql

然后保存该文件。

2.下面向项目中添加新的C++头文件connection.h,并更改其内容如下:

#ifndef CONNECTION_H#define CONNECTION_H#include #include static bool createConnection(){ QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("database.db"); if(!db.open()) return false; QSqlQuery query; query.exec("create table student (id int primary key, name vchar,course int)"); query.exec("insert into student values(1,'yafei0',1)"); query.exec("insert into student values(2,'yafei1',1)"); query.exec("insert into student values(3,'yafei2',2)");query.exec("create table course (id int primarykey, name vchar, teacher vchar)"); query.exec("insert into course values(1,'Math','yafeilinux1')"); query.exec("insert into course values(2,'English','yafeilinux2')"); query.exec("insert into course values(3,'Computer','yafeilinux3')"); return true;}#endif // CONNECTION_H

在这里建立了两个表,student表中有一项是course,它是int型的,而course表的主键也是int型的。如果要将course项和course表进行关联,它们的类型就必须相同,一定要注意这一点。

3.更改main.cpp文件内容如下:

#include "mainwindow.h"#include #include "connection.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); if(!createConnection()) return 1; MainWindow w; w.show(); return a.exec();}

4.然后到mainwindow.h文件中,先包含头文件:

#include

然后添加private类型对象声明:

QSqlRelationalTableModel *model;

5.到设计模式,往界面上拖放一个Table View部件。

6.到mainwindow.cpp文件中,在构造函数里添加如下代码:

model = new QSqlRelationalTableModel(this);//属性变化时写入数据库model->setEditStrategy(QSqlTableModel::OnFieldChange);model->setTable("student");//将student表的第三个属性设为course表的id属性的外键,//并将其显示为course表的name属性的值model->setRelation(2,QSqlRelation("course","id","name"));model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));model->setHeaderData(1, Qt::Horizontal, QObject::tr("Name"));model->setHeaderData(2, Qt::Horizontal, QObject::tr("Course"));model->select();ui->tableView->setModel(model);

这里修改了model的提交策略,OnFieldChange表示只要属性被改动就马上写入数据库,这样就不需要我们再执行提交函数了。setRelation()函数实现了创建外键,注意它的格式就行了。

7.运行程序,效果如下图所示。

数据库表关系图怎么生成,sql server(<六>SQL关系表格模型QSqlRelationalTableModel)

可以看到Course属性已经不再是编号,而是具体的课程了。关于外键,大家也应该有一定的认识了吧,说简单点就是将两个相关的表建立一个桥梁,让它们关联起来。

二、使用委托

本文关键词:sql语句增删改查,sql面试题,sql server是什么软件,sql培训,sql server。这就是关于《数据库表关系图怎么生成,sql server(<六>SQL关系表格模型QSqlRelationalTableModel)》的所有内容,希望对您能有所帮助!

本文链接:https://bk.89qw.com/a-722692

最近发表
网站分类