最近做的功能涉及这方面,算是练了一下。

首先多对一部分较简单。多的那一方表,多设置一个字段是少的那一方的id(主键)。

具体查询时候关联查询即可。

可设置外键进行级联操作。

具体以后做到这个功能再更新。

多对多:

设备和用户多对多,一个用户可有多台设备,一个设备可供多个用户使用。

首先设备表 dev:

用户表 user:

然后创建中间表user_dev      其中user_id 对应user表id  dev_id对应dev表dev_id:

可以在user_dev表设置外键关联:

(这里添加外键,在我的理解是添加约束,还有级联。如果只是简单的查询一类的操作,外键未必有什么意义)

之后,在进行用户user表的存储操作时候,要注意同时进行user_dev表的存储操作。记录,该用户存在哪个设备上。

下面是查询的例子,要用到关联查询:

查询有用户35096037-941B-4934-9DB1-7DC5497A8DAF的所有设备:

SELECT dev.name FROM dev INNER JOIN user_dev ON user_dev.dev_id=dev.dev_id INNER JOIN user ON user.id='35096037-941B-4934-9DB1-7DC5497A8DAF' and user.id = user_dev.user_id;

查询设备2上的所有用户:

SELECT user.username FROM user INNER JOIN user_dev ON user_dev.user_id=user.id INNER JOIN dev ON dev.dev_id='2' and user_dev.dev_id = dev.dev_id;

之后具体有什么实践方面心得再更新。

最新文章

  1. Red Hat Enterprise Linux 各个版本以及发布日期
  2. ruby第一次实践 ”hello world“
  3. linux pam 控制模式
  4. Java对文件及文件夹的操作
  5. vim常用命令笔记(转载)
  6. codeforce Codeforces Round #201 (Div. 2)
  7. ios 中介者模式
  8. js new Date().Format
  9. Qt直接使用OpenSSL里的函数
  10. apache bench(ab)压力测试模拟POSt请求
  11. sqlserver 判断字段是否为空字符串或者null
  12. js 依据“;”折行
  13. oracle数据库访问形式
  14. cmder个人配置文件,做个记录
  15. GlusterFS 增删节点及改变复制份数
  16. linux dns
  17. maven打包时跳过测试
  18. [转]Java中的JavaBean类
  19. 6 [面向对象]-property
  20. faster rcnn算法及源码及论文解析相关博客

热门文章

  1. CocoaPods停在Analyzing dependencies的解决方案
  2. python request post
  3. MSYS是一个小型的GNU环境,包括基本的bash,make等等,与Cygwin大致相当(双击“D:\MinGW\msys\1.0\msys.bat”,启动MinGW终端)
  4. C 删除字符串1字符串2
  5. FPGA综合优化
  6. 手推机器学习公式(一) —— BP 反向传播算法
  7. Linux 网络编程——TCP
  8. Hadoop和RDBMS的混合系统介绍
  9. SQLyog 报错2058 :连接 mysql 8.0.12 解决方法
  10. Maven软件项目管理工具