Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 这个查询的效率和表结构会有多低?_Mysql - Fatal编程技术网

Mysql 这个查询的效率和表结构会有多低?

Mysql 这个查询的效率和表结构会有多低?,mysql,Mysql,我有两张桌子。一个表存储课程\ U更新,基本上每次有人添加或删除课程时都会推送到一个新行。我还有另一个表follower_更新,每当有人跟踪某人时,会将一条记录推送到它。我希望能够获取登录用户的信息,但我不确定如何检测信息来自哪个表,我希望根据它来自哪个表来显示信息。我应该创建一个更新类型的新列,还是应该使用其他方法? 我还将展示我在sql方面的相对想法。它不会完美,因为我还没有测试过它。这只是一个样本。我不想引入我当前的查询,因为课程更新已经有三个内部连接和一个外部连接,所以我尝试简化这个问题

我有两张桌子。一个表存储课程\ U更新,基本上每次有人添加或删除课程时都会推送到一个新行。我还有另一个表follower_更新,每当有人跟踪某人时,会将一条记录推送到它。我希望能够获取登录用户的信息,但我不确定如何检测信息来自哪个表,我希望根据它来自哪个表来显示信息。我应该创建一个更新类型的新列,还是应该使用其他方法? 我还将展示我在sql方面的相对想法。它不会完美,因为我还没有测试过它。这只是一个样本。我不想引入我当前的查询,因为课程更新已经有三个内部连接和一个外部连接,所以我尝试简化这个问题的内容。谢谢

SELECT * FROM course_updates WHERE (establishes connection 
enter code herebetween user and courses and followers)
UNION SELECT * FROM follower_updates WHERE followee.id = currentUser.id etc.

不要使用
接头
。请使用两个单独的查询。

我可能应该包括我想按时间戳对列进行排序的内容。。我认为这改变了一切。对吗?应该“已经”包括您希望为
课程更新
显示哪些信息,以及您希望为
追随者更新
显示哪些信息?对于课程更新,我只是在用户添加或删除课程时存储。因此,我存储了课程id和uID以及操作。至于关注者更新,我正在存储关于谁何时关注谁的信息。我发现我将无法对齐我的列。我想我可能会切换到一个不同的表结构,在那里我有更新、用户更新和课程更新。课程更新将存储课程号时间戳和对更新表的id引用,其中我将通过json存储一个updateObject。但这将导致数据库中的数据冗余。出现数据冗余是因为我需要在添加课程的用户的课程更新中存储数据,但如果用户跟踪某人,我还必须在user_updates表中存储相同的信息,以便获得相同的信息。最终,nosql解决方案可能是最好的,但我正试图坚持使用SQL。我不知道如何准确地安排一切。按原样,当一个用户跟随另一个用户时,我需要为这两个用户添加一个用户更新,以便在我查询数据库时能够获取信息。这并不能真正回答您想要显示什么的问题。与以散文形式描述数据库中存储的内容不同,
CREATE TABLE
语句1)更短,2)更易于阅读3)是回答您问题的人编写代码的基础。我希望能够在用户看到个性化更新的地方显示更新提要。例如,当一个用户的追随者跟踪某人时,他们会看到这一点。如果有人跟踪当前用户,用户将看到这一点。当有人添加用户订阅的课程时,他们会看到。我还想要一个易于扩展的系统,用于其他更新。