如何在单行中添加多个mysql数据生成我的用户?

时间:2014-01-03 14:18:14

标签: mysql

我正在创建一个用户可以输入他/她的学术数据的网站。在这种情况下,用户可以添加他/她在其学年中完成的其他项目和其他工作。例如,我给出了一些表单字段,用于在用户配置文件页面上输入项目的年份,主题和描述。但是,通过单击“添加更多”按钮,将显示另一个HTML表单,用户可以在其中添加其用户可以添加他/她想要的项目。

但是当涉及数据库中的存储时,很难将这些数据存储到单行中,因为MySQL不会水平扩展。但是我正在创建不同的表projects,那么管理表格将非常困难,而表格会非常大。是否有其他方法可以有效地存储此类数据,其中用户的单行可以添加与用户输入项目一样多的列?

3 个答案:

答案 0 :(得分:0)

我建议创建一个单独的表来保存动态项目。然后通过Userid或其他一些唯一值将该表中的每一行链接到用户。基本上您需要做的是使用项目表中的userid作为标识符将每个项目链接到相应的用户..通过这样做你可以有一对多的关系。

答案 1 :(得分:0)

创建另一个表,将其命名为“projects”(或其他),并使用“student ID”coloumn存储所有项目的详细信息。如下所示:

学生证书|项目ID |项目详情1 |项目详情2

现在,对于个人“学生ID”,您可以检索他输入的所有项目的详细信息。

答案 2 :(得分:0)

只需创建以下模型

Table Student
--------------------
ID | name    | ... | ...
--------------------
1 | Jon Doe  | ... | ...


Table Project
---------------------------------------------------------
ID | name     | description | var1    | var2 | Student_ID /Foreign Key to Student Table
---------------------------------------------------------     
 2 | project1 | a project   | physics | .... |    1 
 3 | project2 | another pro | IT      | .... |    1   
 . |     .    |     .       |    .    | .... |    -

给定的模型显示学生和项目之间的一对多关系。 外键是Student_ID,并与Student表的主键相关联。 这使您可以与一名学生一起存储n个项目。

尝试规范化您的数据库模型。意味着每次出现冗余数据时都会考虑创建新表和特定关系。

除了我在示例中显示的一对多关系之外,您可以 模拟多对多关系,使您能够存储一个学生与n个项目和一个项目与n个学生的关联。

编辑性能问题

对表演的评论。为列创建索引非常重要,这些列主要由select语句的where子句查询。索引是一种特殊的数据结构(通常是树,但它实际上取决于DBMS),它使数据库系统能够在 有效的方式。因此,如果您查询学生姓名,例如创建一个附加索引 在名称栏上。

对于外键关系,dbms会自动创建适当的索引。

此外,我认为您的项目不会遇到性能问题。 MySQL可以很好地处理数百万行 这并不意味着海量数据通常不会导致性能问题。它实际上取决于DBMS如何处理海量数据。

 .       .          .           .         .        .