[英]Which of these two approaches is better for organizing and querying data from a mysql?
我试图决定如何实施,希望您的经验对我有所帮助。
用户使用facebook api登录到webapp,这给了我很多数据,名称,facebook id(我使用该数字来标识我的网站中的用户),年龄以及我需要存储以供以后使用的其他一些随机数据分析。 之后,用户可以索取票证(只是一段文本,其中包含一个在php脚本中生成的数字),当票证生成时,我存储了用户facebook id,日期(MM / DD / YYYY),当然还有票证的唯一ID,同一用户可以要求几张票证。
要有两个表,一个叫users
,我在其中存储所有用户个人信息,从Facebook api检索到,包括Facebook用户ID。 第二个表称为“ Tickets
,其中仅存储票证的创建日期和创建票证的用户的Facebook用户ID,当然,此表具有自动递增的唯一ID,以标识票证本身。
将来,我将需要显示所有创建票证的用户的列表,不仅显示其Facebook用户ID,而且还显示其个人信息,因此这意味着我需要查询tickets
以及针对使用的每行/票证我需要查询users
的Facebook ID来检索该users
的个人信息(姓名,年龄,...)。 因此,如果我有10000个唯一身份用户创建的10000张票证,则需要查询Mysql服务器10001,一个用于检索票证数组,一个用于检索每个用户的信息10000 ...
有两个表,只有一个表,我在其中存储所有内容,票据和用户数据,因此,当用户创建票据时,我不仅将与票据相关的信息存储在同一表中,还将用户个人数据存储在同一表中,如果以后我想显示谁创造了票我只是要做一个单一查询用户的列表tickets
将eventualy retrive(如果我有10000票)数据的大包,我以后将解析使用PHP。 这样,我的查询更少,但是数据更大。
现在,我已经运行了第一个解决方案的基本功能,但是现在我有点担心可伸缩性问题。
这是我的users
表的一部分的外观:
这是tickets
表:
因此,要列出用户,我会这样进行: 来自tickets
discount_id
代表tickets
一种类型,因此如果需要类型1
我可以查询*票证winner_id
= 1,从数组中它使用winner_id
(票证创建者的Facebook用户ID)给我,我将其winner_id
从users
获取face_id
以检索个人信息。
我想用第三种方式解决这个问题,就是将1和2相结合,并具有相同的两个表,在我查询所需类型的tickets
之后,然后查询(仅一个)表users
要求一个数组所有的用户ID tickets
都给了我,但是我不知道该怎么做以及是否值得。
哪种解决方案更好? 有什么明智的方式进行吗? 谢谢!
就像评论definitley时一样,可以分解表结构。 它使生活更轻松,因此使用第一个版本。 许多事情只有通过许多表才有可能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.