请问数据库表一对多关联时保存数据应该以json保存好还是循环保存数据保存好?

sbsbsbasdbdsa 2014-02-22 02:05:25
rt


例如:一个用户多个地址,则数据表设计为地址表中增设一个user_id;运行时同一个用户添加多个不同的地址。应该用json格式化所有相应地址再保存在表中(只有一条记录),若显示给用户就要取json出来再还原  这种方法的性能好还是  针对一个用户连续把地址添加到表中  这种方法的性能好?
...全文
2975 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cwk44 2014-02-24
  • 打赏
  • 举报
回复
你的思想是当前主流的nosql数据库思想 不适合用关系型数据库(笑) 关系型数据库就是做关联 关联的话数据格式统一 不然整型也要存成字符串 而且用关联的方式能简单地实现复杂的功能 比如突然想实现这些功能: 1.搜索含xxx的地址 2.搜索其中某个值>100的记录 3.按某个字段排序 4.取出每组数据最大的那个值 写sql语句方便还是一条条取出来匹配和转换方便 当然上面这些都不会用到 存字符串也没问题 性能更高 还有如果建好索引 关联时性能不会差很多 详细看索引机制
sbsbsbasdbdsa 2014-02-22
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
是吗?既然你愿意单打独斗而不愿意团队合作,我也没有什么好说的了
什么意思啊,我不懂啊
xuzuning 2014-02-22
  • 打赏
  • 举报
回复
是吗?既然你愿意单打独斗而不愿意团队合作,我也没有什么好说的了
sbsbsbasdbdsa 2014-02-22
  • 打赏
  • 举报
回复
引用 5 楼 u013738347 的回复:
[quote=引用 4 楼 xuzuning 的回复:] 关系型数据库就是基于关联的,所以关联不会拖慢性能。 当然你需要建立合适的索引 而逗号连接的地址只能使用 find_in_set 函数连接,用不上索引
那就是说关系型数据库关联越多越好吗?[/quote] find_in_set函数?这是mysql的喔,不是说可以用PHP函数解决的就不要用mysql函数吗
sbsbsbasdbdsa 2014-02-22
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
关系型数据库就是基于关联的,所以关联不会拖慢性能。 当然你需要建立合适的索引 而逗号连接的地址只能使用 find_in_set 函数连接,用不上索引
那就是说关系型数据库关联越多越好吗?
xuzuning 2014-02-22
  • 打赏
  • 举报
回复
关系型数据库就是基于关联的,所以关联不会拖慢性能。 当然你需要建立合适的索引 而逗号连接的地址只能使用 find_in_set 函数连接,用不上索引
sbsbsbasdbdsa 2014-02-22
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
如果只是单向查询(从用户查地址)则只需用逗号连接地址即可 如果需要双向查询(从用户查地址、从地址查用户),不频繁时用逗号连接地址,频繁时单独建表
为什么不频繁时用逗号连接地址,频繁时单独建表?关联不会拖慢性能吗?
xuzuning 2014-02-22
  • 打赏
  • 举报
回复
如果只是单向查询(从用户查地址)则只需用逗号连接地址即可 如果需要双向查询(从用户查地址、从地址查用户),不频繁时用逗号连接地址,频繁时单独建表
sbsbsbasdbdsa 2014-02-22
  • 打赏
  • 举报
回复
还有我的数据表存储类型应该设为myisam还是innodb?我这个项目属于商务系统,是网上申请宽带的,但不涉及金钱交易。如果用myisam就是表锁,其他人同一时间申请的话会申请不了;但用innodb(行锁)的话又没有什么金钱交易(事务)的,好像又没什么必需。应该如何选择呢?

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧