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建一个中间库,想要实现业务库往中间库定时同步数据,有几种方式可以实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)