我正在使用PHP和MyISAM,目前我有一个用户的个人资料页面,我不确定我应该如何准确地列出表格。
我有用户的表(以及他们的个人资料的每一位,包括一对MEDIUMTEXT字段用于他们的长描述或自定义样式表),一个朋友的表(userid + friendid),当然还有一个表可能已被评论过放在他们的页面上。
将配置文件/额外用户数据与用户表分开并纯粹用它来检查其他表是否明智?
如果我只是检查他们的朋友要在其他页面上显示或显示某些内容,我不确定每行中是否有多个/或某些长字段是不合适的。
答案 0 :(得分:2)
基本上你的问题不能得到真正的回答,因为它是非常主观的,所以这或多或少是一些意见:
将配置文件/额外用户数据与用户列分开并纯粹用它来检查其他表是否明智?
似乎是这样,因为你称之为额外的用户数据。所以它不属于用户,应该与它分开。
如果我只是检查他们的朋友要在其他页面上显示或显示某些内容,我不确定每行中是否有多个/或某些长字段是不合适的。
您提供的信息也很难回答。但是,如果您只进行SELECT * FROM TABLE;
次查询,那么这肯定是不合适的。
答案 1 :(得分:2)
简短的回答可能是。分隔表将节省空间,因为如果不使用该字段,则不会分配空间。空间可能不是一个问题(取决于服务器和用户群),但加入表可能会降低性能,但这又取决于用户群和服务器。我认为主键索引存储在内存中,因此查找不应受行数/列数的影响。
速度/性能......非正常化
空间规范化
答案 2 :(得分:1)
我认为为配置文件/额外用户数据创建单独的表是一件好事。将常用列保留在用户表中,并移动新user_profile表中的其他列。目前您有10到15列,但将来它可能会增长到50多列。所以现在最好分开。
HTH,