数据库表的设计

数据库表的设计,第1张

1、若是一对多或多对一的对象存到数据库表,原则上应该先观察对象的基本属性,然后设计一个数据表保存此对象的基本数据,并在数量关系多的一方,加外键描述数据之间的关系;

2、若是多对多对象的数据库表,原则上也是观察该对象的基本属性,然后设计一个表来保存此对象的基本数据,且需要加一个中间表来描述数据的关系;

3、若是一对一的对象的数据库设计, 除了上述 *** 作,还因为一对一的对象有主从关系,因此可加入自连接表进行设计。

可以啊

职员名 公文

甲 公文1,公文2……公文n

乙 公文1,公文m

…… ……………………

将职员名作为主键,每个人可以审批很多个公文,所以公文名是多个,这样不就是多对多的关系吗?

一、实现思路与应用场景

1 中间数据库

i 新建一个数据库以及数据库管理员账号,并赋予且仅赋予该账号管理该数据库的所有权限。

ii 设置定时任务定期向该数据库推送表数据。

2 应用场景

i 向第三方提供数据的一种方式,安全性高,不适宜应用于对数据及时性要求高的项目。

二、 应用原理

当中间数据库中的表名与当前数据库中的表名相同时,数据表内的数据会被覆盖;

如果中间数据库的表在sql中不存在,则不受影响

三、具体实现

1 创建用户

CREATE USER `user_name`@`%` IDENTIFIED BY 'password';

2 赋予权限

grant all privileges on 想授权的数据库 to 'user_name'@'%';

flush privileges; 刷新权限

3 定时任务

i 数据库表的导出与导入命令

/usr/bin/mysqldump -h 202202202202 -u dbuser -pdbuser --single-transaction slave > tablesql

/usr/bin/mysql -u dbuser -pdbuser database_name < /home/mysql/tablesql

ii 创建sql文件的临时存放目录

mkdir /home/mysql

iii 脚本编写

#!/bin/bashTIME=`date +%Y%m%d%H`rm -rf /home/mysql//usr/bin/mysqldump -h 172168102129 -u dbuser -pdbuser --single-transaction database_name > /home/mysql/table_$TIMEsql/usr/bin/mysql -u dbuser -pdbuser database_name < /home/mysql/table_$TIMEsql

iv cron定时任务

将脚本report_syncsh 保存到/usr/bin下:

mv report_syncsh /usr/bin

增加计划任务(每天中午11点执行一次)

crontab -e(确保crontab安装)

00 11 /usr/bin/report_syncsh

————————————————

版权声明:本文为CSDN博主「yangxinyujy」的原创文章,遵循 CC 40 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:>

1、在SQL数据库管理工具中创建一个新的表格,用于存储需要清洗和处理的数据。

2、将需要清洗和处理的数据导入到中间表中。

3、对导入的数据进行清洗和处理,如去除重复数据、修正格式错误、填充缺失数据等。

4、将处理后的数据导出到目标数据库中,可以使用INSERTINTO语句将数据插入到目标数据库中。

以上就是关于数据库表的设计全部的内容,包括:数据库表的设计、数据库中,两个表之间,能否存在多个不同的关系(中间表)、sql server2012建一个中间库,想要实现业务库往中间库定时同步数据,有几种方式可以实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9279506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存