编程C,C ++,Java,PHP,Ruby,图灵,VB
计算机科学加拿大 
编程C,C ++,Java,PHP,Ruby,图灵,VB  

用户名:   Password: 
 登记登记   
 PHP. - MySQL数据存储问题
指数 -> 编程,PHP. -> PHP.帮助
查看上一个主题 可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题
作者 信息
丹岸




邮政发布: 2010年10月14日星期四8:56  POST主题:PHP - MySQL数据存储问题

这个问题更多关于MySQL数据库。

我正在使用外国和主键存储引用2个或更多表的数据。

一个表是一个“用户”表,一个表是“消息”表。
“消息”表使用“UserID”外键引用“用户”表的“UserID”主键。

我的问题是将信息从“消息”表中的“用户”表(即名称)存储在“消息”表中,并且只执行1 SELECT语句,或者更快地执行2 SELECT语句,或者更快。从“消息”表中获取FK“userid”,第二个以从“用户”表中获取用户名?

在学校我总是被告知消除冗余表数据,所以我假设后者是一个更好的主意..但我的担忧是速度。

有什么建议么?
赞助
赞助
赞助
赞助
克里斯·布朗




邮政发布: 2010年10月14日星期四:下午9:21  POST主题:RE:PHP - MySQL数据存储问题

良好的数据库架构总是胜过(并且通常会阻止需要的性能考虑因素。如果要存储用户的名称,则该名称属于用户表。

在这种情况下,调查加入。它们允许您完成您想要做的事情:在一个SELECT语句中,您可以根据某些条件从多个表中获取列,例如
代码:
选择 *
 来自用户内联的邮件
   在user.id = messages.userid;


或使用隐式连接:
代码:
选择 *
  FROM user, messages
 其中user.id = messages.userid;


不同的例子从无耻地抬起 http://en.wikipedia.org/wiki/Join_%28SQL%29
丹岸




邮政发布: 2010年10月14日星期四晚上9:33  POST主题:RE:PHP - MySQL数据存储问题

加入...有趣,我从未教过我的DB课程,大声笑。

我猜你仍然可以使用$行['firstname']和$行['message'](两个不同的表列)通过加入两个表?

如果是这样,谢谢!
这将使事情提高有用,因为侧面项目IM的设计有11个表到目前为止,其中3个包含类似表信息的参考表,但对多价相同列存储的需求强迫我创建另一个表。
丹岸




邮政发布: 2010年10月14日星期四晚上9:52  POST主题:RE:PHP - MySQL数据存储问题

嗯,我有另一个问题。

我很奇怪的变量存储大小,有人知道它如何影响数据库(除了占用额外的内存)吗?

我一直在想考虑一下我应该制作一些varchar的大小,我不想限制用户的输入太多。
例如,用户密码将存储为SHA1(+键)哈希值,这会增加密码长度。我不想让尺寸太小,所以我想知道太大了吗?
克里斯·布朗




邮政发布: 星期五2010年10月15日2:10 AM  帖子主题:Re:Re:PHP - MySQL数据存储问题

Danshadow @ Thu 2010年10月14日上午9:33写道:
我猜你仍然可以使用$行['firstname']和$行['message'](两个不同的表列)通过加入两个表?

是的,结果集是单个表,其中来自两个连接的单个表。

关于你的第二个问题,如果你的尺寸有所慷慨,你可能不会发现差异。
只是一个抬头,sha1哈希总是80个字符。
丹岸




邮政发布: 周五2010年10月15日7:31 AM  POST主题:RE:PHP - MySQL数据存储问题

啊,谢谢!
从上一个显示帖子:   
   指数 -> 编程,PHP. -> PHP.帮助
查看上一个主题 告诉一个朋友可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题

11  [ 6 Posts ]
跳到:   


Style:  
搜索: