STPMS項目記錄——涉及的mySQL8知識點

mySQL8知識點

mySQL8的安裝

  1. 首先,將RAR文件解壓到預設的目錄中,在目錄中創建my.ini文件,內容如下
[mysqld]
basedir = D:\ProgramFiles\mysql-8.0.11-winx64
datadir = D:\ProgramFiles\mysql-8.0.11-winx64\data
port = 3306
lower_case_table_names = 2
default_authentication_plugin=mysql_native_password
character-set-server = utf8mb4
[mysql]
default-character-set = utf8mb4
[client]
default-character-set = utf8mb4
  1. 右鍵點擊我的電腦,配置環境變量,添加PATH設置,將解壓文件夾下的bin路徑添加到變量值中。

  2. 以管理員的身份運行cmd,運行命令

mysqld --initialize --console

在執行的過程信息中會顯示ROOT的臨時密碼,需要記錄一下。沒記住,刪掉初始化的 data目錄,再執行一遍初始化命令,又會重新生成的。

  1. 安裝服務,需要執行
mysqld --install
  1. 啓動服務,執行
net start mysql

如果需要停止服務或卸載服務,可以通過命令

net stop mysql

停止服務。通過命令

sc delete MySQL/mysqld -remove

卸載 MySQL 服務。

  1. 更改密碼

在MySQL安裝目錄的 bin 目錄下執行命令:

mysql -u root -p

這時候會提示輸入密碼,記住了上面安裝時的密碼,填入即可登錄成功,進入MySQL命令模式。
然後修改密碼,運行

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';

在SQL的shell裏,可以用命令行檢查一下SQL的運行情況

show databases;
use mysql;
show tables;

會顯示databases->mysql中數據表的清單。

mysql使用的知識點

建立用戶

在SHELL模式下,輸入

create user 'norwin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

則會建立本地帳戶norwin,密碼是123456。
mySQL中建立的用戶都在mySQL庫的user表中保存,可以通過下面的命令查看用戶是否建立成功

use mysql;
select user,host from user\G;

服務斷開

quit;

授權所有權限

GRANT ALL PRIVILEGES ON *.* TO 'norwin'@'%'

授權基本的查詢修改權限,按需求設置

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'norwin'@'%';

查看用戶權限

show grants for 'norwin'@'%';

uuid的生成和使用

  1. mysql中直接使用uuid()函數,可以生成一個隨機的uuid。
  2. 正常的uuid是36位長度的。

數據庫的建立

如果存在數據庫,則刪除該數據庫並建立新的

DROP DATABASE IF EXISTS STPMS;
CREATE DATABASE STPMS;
USE STPMS;

載入SQL文件

source xxx.sql

STPMS工程的源代碼

STPMS工程由楊MM所寫,記錄在這裏,以備後續的查閱需要,在此對楊MM表示感謝。

#數據庫
DROP DATABASE IF EXISTS STPMS;
CREATE DATABASE STPMS;
USE STPMS;

#單位表
DROP TABLE IF EXISTS department;
CREATE TABLE department
(
    id VARCHAR(36),
    pID VARCHAR(36),
    name VARCHAR(64) NOT NULL,
    address VARCHAR(255),
    remark VARCHAR(255),
    PRIMARY KEY(id),
    FOREIGN KEY(pID) REFERENCES department(id),
    UNIQUE INDEX(pID,name)
);
INSERT INTO department(id,pID,name,address) VALUES(uuid(),NULL,'中國電子科技集團公司第二十七研究所','河南省鄭州市鄭東新區博學路36號');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='中國電子科技集團公司第二十七研究所') a),'基礎技術部');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='基礎技術部') a),'計算機軟件室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='中國電子科技集團公司第二十七研究所') a),'測控與雷達系統事業部');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='測控與雷達系統事業部') a),'測控技術室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='測控與雷達系統事業部') a),'遙感技術室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='測控與雷達系統事業部') a),'功放技術室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='測控與雷達系統事業部') a),'衛星終端室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='中國電子科技集團公司第二十七研究所') a),'光電系統事業部');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='光電系統事業部') a),'激光技術室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='光電系統事業部') a),'偵察告警室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='光電系統事業部') a),'指揮控制室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='光電系統事業部') a),'光電導航室');


#人員表
DROP TABLE IF EXISTS person;
CREATE TABLE person
(
    id VARCHAR(36),
    departmentID VARCHAR(36) NOT NULL,
    name VARCHAR(64) NOT NULL,
    cardNo VARCHAR(4),
    telephone VARCHAR(32),
    remark VARCHAR(255),
    PRIMARY KEY(id),
    FOREIGN KEY(departmentID) REFERENCES department(id),
    UNIQUE INDEX(cardNo)
);

INSERT INTO person(id,departmentID,name,cardNo,telephone) VALUES
            (uuid(),(SELECT id FROM department WHERE name='中國電子科技集團公司第二十七研究所'),'admin','0000','0371-61270921');


#角色表
DROP TABLE IF EXISTS role;
CREATE TABLE role
(
    id VARCHAR(36),
    name VARCHAR(64) NOT NULL,
    level VARCHAR(1) NOT NULL,
    PRIMARY KEY(id),
    UNIQUE INDEX(name)
);
INSERT INTO role(id,name,level) VALUES(uuid(),'系統管理員','0');
INSERT INTO role(id,name,level) VALUES(uuid(),'主任','1');
INSERT INTO role(id,name,level) VALUES(uuid(),'組長','2');
INSERT INTO role(id,name,level) VALUES(uuid(),'測試人員','3');
INSERT INTO role(id,name,level) VALUES(uuid(),'課題負責人','4');
INSERT INTO role(id,name,level) VALUES(uuid(),'委託人','4');
INSERT INTO role(id,name,level) VALUES(uuid(),'軟件負責人','4');
INSERT INTO role(id,name,level) VALUES(uuid(),'項目QA','4');
INSERT INTO role(id,name,level) VALUES(uuid(),'測試負責人','3');
INSERT INTO role(id,name,level) VALUES(uuid(),'設計師','4');




#人員_角色關係表
DROP TABLE IF EXISTS rPersonRole;
CREATE TABLE rPersonRole
(
    id VARCHAR(36),
    personID VARCHAR(36) NOT NULL,
    roleID VARCHAR(36) NOT NULL,
    PRIMARY KEY(id),
    FOREIGN KEY(personID) REFERENCES person(id),
    FOREIGN KEY(roleID) REFERENCES role(id),
    UNIQUE INDEX(personID,roleID)
);
INSERT INTO rPersonRole(id,personID,roleID) VALUES(uuid(),(SELECT id FROM person WHERE name='admin'),(SELECT id FROM role WHERE name='系統管理員'));

#用戶表
DROP TABLE IF EXISTS user;
CREATE TABLE user
(
    id VARCHAR(36),
    personID VARCHAR(36) NOT NULL,
    password VARCHAR(32) NOT NULL,
    PRIMARY KEY(id),
    FOREIGN KEY(personID) REFERENCES person(id),
    UNIQUE INDEX(personID)
);
INSERT INTO user(id,personID,password) VALUES(uuid(),(SELECT id FROM person WHERE name='admin'),'0000');

#關鍵進展類型
DROP TABLE IF EXISTS keyProgressType;
CREATE TABLE keyProgressType
(
    id VARCHAR(36),
    keyProgressType VARCHAR(128) NOT NULL,
    importLevel VARCHAR(1) NOT NULL,
    PRIMARY KEY(id),
    UNIQUE INDEX(keyProgressType)
);
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'接收委託單','2');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'接收樣品','3');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'測試依據出庫','3');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'編制測試需求','2');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'編制測試計劃','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'修改測試計劃','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'測試計劃評審','2');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'編制測試說明','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'修改測試說明','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'測試說明評審','2');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'測試產品出庫','3');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'測試就緒評審','2');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'執行測試用例','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'編制測試記錄','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'修改測試記錄','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'編制測試問題報告','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'修改測試問題報告','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'編制測試報告','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'修改測試報告','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'測試工具開發','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'確認測試工具','2');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'測試數據準備','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'測試環境準備','3');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'增加測試協調單','2');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'存檔','1');
INSERT INTO keyProgressType(id,keyProgressType,importLevel) VALUES(uuid(),'入受控庫','1');


#執行狀態
DROP TABLE IF EXISTS executeStatus;
CREATE TABLE executeStatus
(
    id VARCHAR(36),
    executeStatus VARCHAR(32) NOT NULL,
    PRIMARY KEY(id),
    UNIQUE INDEX(executeStatus)
);
INSERT INTO executeStatus(id,executeStatus) VALUES(uuid(),'運行中');
INSERT INTO executeStatus(id,executeStatus) VALUES(uuid(),'暫停');
INSERT INTO executeStatus(id,executeStatus) VALUES(uuid(),'停滯');
INSERT INTO executeStatus(id,executeStatus) VALUES(uuid(),'完成');


#關鍵進展類型_執行狀態關係表
DROP TABLE IF EXISTS rKeyProgressTypeExecuteStatus;
CREATE TABLE rKeyProgressTypeExecuteStatus
(
    id VARCHAR(36),
    executeStatusID VARCHAR(36) NOT NULL,
    keyProgressTypeID VARCHAR(36) NOT NULL,
    isRecNumber VARCHAR(1) NOT NULL,
    isRecWorkload VARCHAR(1) NOT NULL,
    workloadUnit VARCHAR(8),
    isRecWorkingProduct VARCHAR(1) NOT NULL,
    isRecBug VARCHAR(1) NOT NULL,
    PRIMARY KEY(id),
    FOREIGN KEY(executeStatusID) REFERENCES executeStatus(id),
    FOREIGN KEY(keyProgressTypeID) REFERENCES keyProgressType(id),
    UNIQUE INDEX(executeStatusID,keyProgressTypeID)
);
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='接收委託單'),'1','0','','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='測試依據出庫'),'1','0','','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='編制測試需求'),'0','1','項','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='編制測試需求'),'0','1','項','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='編制測試計劃'),'0','1','項','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='編制測試計劃'),'0','1','項','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='修改測試計劃'),'0','1','項','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='修改測試計劃'),'0','1','項','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='編制測試說明'),'0','1','個','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='編制測試說明'),'0','1','個','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='修改測試說明'),'0','1','個','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='修改測試說明'),'0','1','個','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='測試產品出庫'),'1','0','','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='執行測試用例'),'0','1','個','0','1');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='執行測試用例'),'0','1','個','0','1');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='編制測試記錄'),'0','1','個','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='編制測試記錄'),'0','1','個','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='修改測試記錄'),'0','1','個','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='修改測試記錄'),'0','1','個','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='編制測試問題報告'),'0','1','個','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='編制測試問題報告'),'0','1','個','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='修改測試問題報告'),'0','1','個','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='修改測試問題報告'),'0','1','個','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='編制測試報告'),'0','1','份','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='修改測試報告'),'0','1','份','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='測試工具開發'),'0','1','行','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='測試工具開發'),'0','1','行','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='確認測試工具'),'1','0','','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='測試數據準備'),'0','1','行','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='測試數據準備'),'0','1','行','1','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='運行中'),(SELECT id FROM keyProgressType where keyProgressType='測試環境準備'),'0','1','天','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='測試環境準備'),'0','1','天','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='存檔'),'1','0','','0','0');
INSERT INTO rKeyProgressTypeExecuteStatus(id,executeStatusID,keyProgressTypeID,isRecNumber,isRecWorkload,workloadUnit,isRecWorkingProduct,isRecBug)
    VALUES(uuid(),(SELECT id FROM executeStatus where executeStatus='完成'),(SELECT id FROM keyProgressType where keyProgressType='入受控庫'),'1','0','','0','0');



#項目表
DROP TABLE IF EXISTS project;
CREATE TABLE project
(
    id VARCHAR(36),
    clientDepartmentID VARCHAR(36) NOT NULL,
    manufacturerDepartmentID VARCHAR(36) NOT NULL,
    name VARCHAR(128),
    workOrderNo VARCHAR(32),
    startTime DATETIME,
    remark VARCHAR(255),
    PRIMARY KEY(id),
    FOREIGN KEY(clientDepartmentID) REFERENCES department(id),
    FOREIGN KEY(manufacturerDepartmentID) REFERENCES department(id),
    UNIQUE INDEX(name),
    UNIQUE INDEX(workOrderNo)
);

#項目_人員_角色關係表
DROP TABLE IF EXISTS rProjectPersonRole;
CREATE TABLE rProjectPersonRole
(
    id VARCHAR(36),
    userID VARCHAR(36) NOT NULL,
    projectID VARCHAR(36) NOT NULL,
    roleID VARCHAR(36) NOT NULL,
    ondutyStartTime DATETIME,
    ondutyEndTime DATETIME,
    PRIMARY KEY(id),
    FOREIGN KEY(userID) REFERENCES user(id),
    FOREIGN KEY(projectID) REFERENCES project(id),
    FOREIGN KEY(roleID) REFERENCES role(id),
    UNIQUE INDEX(userID,projectID,roleID)
);

#項目結構表
DROP TABLE IF EXISTS projectStructure;
CREATE TABLE projectStructure
(
    id VARCHAR(36),
    projectID VARCHAR(36) NOT NULL,
    pID VARCHAR(36) NOT NULL,
    name VARCHAR(128) NOT NULL,
    identifier VARCHAR(64) NOT NULL,
    scale VARCHAR(1),
    softwareLevel VARCHAR(1),
    softwareType VARCHAR(1),
    developmentLanuage VARCHAR(64),
    remark VARCHAR(255),
    PRIMARY KEY(id),
    FOREIGN KEY(projectID) REFERENCES project(id),
    FOREIGN KEY(pID) REFERENCES projectStructure(id),
    UNIQUE INDEX(identifier)
);

#項目結構_人員_角色關係表
DROP TABLE IF EXISTS rProjectStructurePersonRole;
CREATE TABLE rProjectStructurePersonRole
(
    id VARCHAR(36),
    userID VARCHAR(36) NOT NULL,
    projectStructureID VARCHAR(36) NOT NULL,
    roleID VARCHAR(36) NOT NULL,
    ondutyStartTime DATETIME,
    ondutyEndTime DATETIME,
    PRIMARY KEY(id),
    FOREIGN KEY(projectStructureID) REFERENCES projectStructure(id),
    FOREIGN KEY(roleID) REFERENCES role(id),
    UNIQUE INDEX(userID,projectStructureID,roleID)
);

#任務分工基本信息表
DROP TABLE IF EXISTS task;
CREATE TABLE task
(
    id VARCHAR(36),
    projectID VARCHAR(36) NOT NULL,
    testLevel VARCHAR(1),
    testStage VARCHAR(32),
    PRIMARY KEY(id),
    FOREIGN KEY(projectID) REFERENCES project(id),
    UNIQUE INDEX(projectID,testLevel,testStage)
);

#任務分工列表
DROP TABLE IF EXISTS taskAssign;
CREATE TABLE taskAssign
(
    id VARCHAR(36),
    taskID VARCHAR(36) NOT NULL,
    projectStructureID VARCHAR(36) NOT NULL,
    testerID VARCHAR(36) NOT NULL,
    ondutyStartTime DATETIME,
    ondutyEndTime DATETIME,
    testPlannedFinishTime DATETIME,
    serialNumber VARCHAR(12),
    PRIMARY KEY(id),
    FOREIGN KEY(taskID) REFERENCES task(id),
    FOREIGN KEY(projectStructureID) REFERENCES projectStructure(id),
    FOREIGN KEY(testerID) REFERENCES person(id),
    UNIQUE INDEX(taskID,projectStructureID,testerID)
);

#工作內容列表
DROP TABLE IF EXISTS workContent;
CREATE TABLE workContent
(
    id VARCHAR(36),
    taskAssignID VARCHAR(36) NOT NULL,
    rKeyProgressTypeExecuteStatusID VARCHAR(36) NOT NULL,
    remark VARCHAR(128),
    recordTime DATETIME,
    PRIMARY KEY(id),
    FOREIGN KEY(taskAssignID) REFERENCES taskAssign(id),
    FOREIGN KEY(rKeyProgressTypeExecuteStatusID) REFERENCES rKeyProgressTypeExecuteStatus(id)
);

#編號表
DROP TABLE IF EXISTS number;
CREATE TABLE number
(
    id VARCHAR(36),
    workContentID VARCHAR(36) NOT NULL,
    number VARCHAR(128) NOT NULL,
    PRIMARY KEY(id),
    FOREIGN KEY(workContentID) REFERENCES workContent(id)   
);

#工作量表
DROP TABLE IF EXISTS workload;
CREATE TABLE workload
(
    id VARCHAR(36),
    workContentID VARCHAR(36) NOT NULL,
    workload DECIMAL(12,2) NOT NULL,
    PRIMARY KEY(id),
    FOREIGN KEY(workContentID) REFERENCES workContent(id)   
);

#工作產品表
DROP TABLE IF EXISTS workingProduct;
CREATE TABLE workingProduct
(
    id VARCHAR(36),
    workContentID VARCHAR(36) NOT NULL,
    numberID VARCHAR(36) NOT NULL,
    name VARCHAR(64) NOT NULL,
    identifier VARCHAR(64) NOT NULL,
    version VARCHAR(8) NOT NULL,
    savePath VARCHAR(128),
    PRIMARY KEY(id),
    FOREIGN KEY(workContentID) REFERENCES workContent(id),
    FOREIGN KEY(numberID) REFERENCES number(id),
    UNIQUE INDEX(workContentID,name,identifier,version)
);


#缺陷
DROP TABLE IF EXISTS problem;
CREATE TABLE problem
(
    id VARCHAR(36),
    workContentID VARCHAR(36) NOT NULL,
    bugLevel VARCHAR(1),
    bugLevelNum INT,
    bugType VARCHAR(1),
    bugTypeNum INT,
    reproducibleDegree VARCHAR(1),
    reproducibleDegreeNum INT,
    PRIMARY KEY(id),
    FOREIGN KEY(workContentID) REFERENCES workContent(id)
);

#系統日誌表
DROP TABLE IF EXISTS systemLog;
CREATE TABLE systemLog
(
    id VARCHAR(36),
    cardNo VARCHAR(4) NOT NULL,
    operationTime DATETIME,
    operationType VARCHAR(64),
    operationContent VARCHAR(128),
    PRIMARY KEY(id)
);

COMMIT;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章