1

我有一个带有两个集合的数据库。学生收藏有一个名为“student_bookselections”的字段,用于保存书籍的 ID。此字段的内容经常会更改或更新。

  1. 我们如何向 student_bookselections 添加或删除 id?
  2. 这是关联收藏的一种不错的方式吗?

学生收藏

                array(
                "student_id" => 4,
                "student_fullname" => $studentfullname,
                "student_bookselections" => 'id1,  id34, id788 ... ... id4'

                )

书籍收藏

                array(
                "book_id" => 4354,
                "book_title" => $title,
                "book_author" => $author,

                )
4

2 回答 2

1

您最好使用第三张表将学生与书籍联系起来,您当前的实现未标准化。

Users(
    "student_id" => 4,
    "student_fullname" => $studentfullname
 )

Books(
    "book_id" => 4,
    "book_title" => $title,
    "book_author" => $author
 )

Selections(
    "selection_id" => 4,
    "student_id" => $studentid,
    "book_id" => $bookid
 )

然后,您可以使用外键定义关系以链接表,更重要的是,每一行都与一条信息相关。如果您想知道某个学生的所有书籍选择

mysql_query("SELECT * FROM Selections WHERE student_id = $student_id");

希望有帮助!

于 2013-04-16T14:39:01.307 回答
0

更新

<?php

  $mongo = new Mongo();
  $db = $mongo->selectDB("Your_Database");

  $student = $db->students;

  $update = array("$set" => array("student_bookselections" => "your ids"));
  $where = array("student_id" => 4);
  $student->update($where,$update);

?>

插入

<?php

  $mongo = new Mongo();
  $db = $mongo->selectDB("Your_Database");

  $student = $db->students;

  $insert = array("student_fullname" => "Stefan", "student_bookselections" => "your ids" );
  $student->insert($insert);

?>

去除

<?php

  $mongo = new Mongo();
  $db = $mongo->selectDB("Your_Database");

  $student = $db->students;

  $student->remove(array("ID" => 4));

?>

关系 (见 Crhis 的帖子)

Users(
    "student_id" => 4,
    "student_fullname" => $studentfullname
 )

Books(
    "book_id" => 4,
    "book_title" => $title,
    "book_author" => $author
 )

Selections(
    "selection_id" => 4,
    "student_id" => $studentid,
    "book_id" => $bookid
 )

选择这个关系

<?php

  $mongo = new Mongo();
  $db = $mongo->selectDB("Your_Database");

  $selection = $db->selections;

  $res = $student->find(array("student_id" => $student_id));

?>
于 2013-04-16T14:41:54.173 回答