我使用简单的 php MVC 框架和简单的 CRUD 模型。
任何方法都可以添加到模型中,所以我可以使用join
sql-logic 添加复杂的方法,但我想只尝试 CRUD 方法,而不需要连接。
因此,例如,我想添加将照片添加到用户个人资料的功能。
我建议 2 (+1) = 3 种变化:
1 . 将照片的 ID 保存在用户表中:
User
型号和users
表格:
编号 | 登录 | 电子邮件 | 照片 |
- photos 是一组照片的 ID。
Photo
型号和photos
表格:
编号 | 源代码
- 在 photos 表中我们只保留图片的 id 和 src,不知道它是谁的图片
2.在照片表中保存用户的ID(作为照片所在用户的ID)
型号User
及users
表:
编号 | 登录 | 电子邮件
- 此表中没有有关照片的信息
型号Photo
及photos
表:
编号 | 源代码 | 用户身份
- 保留拥有这张照片的用户信息,如果用户有 3 张照片,则此表中将有 3 条记录
3. 3表方式:
桌子users
编号 | 登录 | 电子邮件(* 此表中没有有关照片的信息)
桌子photos
编号 | src (* 没有关于谁的照片的信息)
桌子user-photo
编号 | 用户 ID | photo_id (* 照片关系表)
我认为,第二种方式更简单,因为我们不应该解析 SQL 数组,它只是简单的 CRUD 操作。
但是第一种方法更快吗?第一种方式,当我们要获取用户信息时,我们知道照片的id,并通过-主键从photos
表中获取照片。id
但是在第二种方式中,我们从photos
表中获取照片user_id
- 不是主键,所以它应该更慢。
你有什么建议吗?对于这样的问题,绝对有另一种解决方案吗?
PS对不起,解释混乱,我有一段时间没有用英语提问,所以欢迎您纠正我的英语不好;)
更新:我添加了第三个变体。它是最好的吗?