MySQL CodeIgniter中的数据库结构Phpadmin

MySQL CodeIgniter中的数据库结构Phpadmin,mysql,database,codeigniter,phpmyadmin,Mysql,Database,Codeigniter,Phpmyadmin,想象一下,我们有一个phpadmin数据库,我们有一张桌子,上面放着学生、学生音乐和学生朋友、学生朋友音乐。有四个表对性能有意义吗?或者你认为我们需要三张桌子给学生朋友学生音乐和桌子给音乐。facebook如何在其数据库中存储好友关系 另一件事是我为两者设计了数据库。我不知道我是否看到了任何不同,但我认为一旦用户增加,一个会在性能方面胜过另一个 因此,我的问题涉及查询的性能: 这是多点桌子好还是少点 能给我们复印件吗 你知道我可以学习什么好书、教程或参考资料来了解Php、my admin和mys

想象一下,我们有一个phpadmin数据库,我们有一张桌子,上面放着学生、学生音乐和学生朋友、学生朋友音乐。有四个表对性能有意义吗?或者你认为我们需要三张桌子给学生朋友学生音乐和桌子给音乐。facebook如何在其数据库中存储好友关系

另一件事是我为两者设计了数据库。我不知道我是否看到了任何不同,但我认为一旦用户增加,一个会在性能方面胜过另一个

因此,我的问题涉及查询的性能: 这是多点桌子好还是少点 能给我们复印件吗

你知道我可以学习什么好书、教程或参考资料来了解Php、my admin和mysql中的关系数据库吗

更新: 表学生可以与自己有多对多的关系。 桌上音乐对学生也有多对多的影响

Student id Student_friend  Music id     STUDENT_MUSIC     
  A      1      1-3         YT    1          1  3
  B      2      2-3         RU    2          2  3
  C      3                  PI    3          3  1
                                             3  2
所以我在CodeIgniter中使用了一种叫做数据映射器的东西,这让我很头疼,但这听起来像是我现在正在考虑的一种结构

表格建议:

表_学生(包含学生信息等) 表\u音乐(表\u学生中带有学生id的螺柱音乐优先) 表\u朋友(包含来自表学生的学生id以及标记值friend或not friend)

表建议:

表_学生(包含学生信息等) 表\u音乐(表\u学生中带有学生id的螺柱音乐优先) table_friends(包含来自table students的学生id和标志值friends或not friends)

查看此文件,了解mysql简介和关于关系数据库的文章。阅读有关表、主键和外键的信息。在担心性能之前,您需要解决数据库的结构问题

尝试(:一个学生可以拥有多首音乐,并且有一个朋友):

或者尝试(:许多学生可以拥有许多音乐作品并有许多朋友):

处理关系的数据视图可以使用Select语句显示。在一对多设计中,查找学生音乐使用以下查询:

Select Student.first_name,Student.last_name,Music.music_title 
FROM Student 
LEFT JOIN Music on (Student.ID=Music.music_student_id)
设计数据库的一部分是找出需要查询的关系

还可以查看。

查看这篇mysql简介和关于关系数据库的文章。阅读有关表、主键和外键的信息。在担心性能之前,您需要解决数据库的结构问题

尝试(:一个学生可以拥有多首音乐,并且有一个朋友):

或者尝试(:许多学生可以拥有许多音乐作品并有许多朋友):

处理关系的数据视图可以使用Select语句显示。在一对多设计中,查找学生音乐使用以下查询:

Select Student.first_name,Student.last_name,Music.music_title 
FROM Student 
LEFT JOIN Music on (Student.ID=Music.music_student_id)
设计数据库的一部分是找出需要查询的关系


另外,请注意。

是的,这是真的……但我的问题是:设计一个数据库并在不同的表中有重复的条目有意义吗。或者我们应该添加更多关系以避免重复条目。我将用一个例子来编辑上面的文章。我建议添加更多的关系。我不确定你是否使用过datamapper,但这对我现在来说有点限制。它使整个MySql面向对象。所以现在我不知道如何用它来建立多对多的自我关系。我希望我可以直接编写MySql,而不用像CodeIgniter那样将自己绑定到框架中。是的,这是真的……但我的问题是:设计一个数据库并在不同的表中有重复的条目有意义吗。或者我们应该添加更多关系以避免重复条目。我将用一个例子来编辑上面的文章。我建议添加更多的关系。我不确定你是否使用过datamapper,但这对我现在来说有点限制。它使整个MySql面向对象。所以现在我不知道如何用它来建立多对多的自我关系。我希望我可以直接编写MySql,而不必像CodeIgniter那样将自己束缚在框架中。你是对的,我不应该担心性能,但我对编写代码有点认真。我应该选择最好的解决方案。认真是可以的,但在需要更高的性能之前,您通常会选择可扩展的设计。您是对的,我不应该担心性能,但我对编写代码有点认真。我应该选择最好的解决方案。认真是可以的,但在需要更高的性能之前,您通常会选择可扩展的设计。
Select Student.first_name,Student.last_name,Music.music_title 
FROM Student 
LEFT JOIN Music on (Student.ID=Music.music_student_id)