1

我对 MySQL 和数据库还很陌生,但我正在努力学习 :)

我现在已经建立了一个包含 2 个表的数据库。其中第一个,user_info,包含在线应用程序的用户列表,以及他们的帐户信息,例如;用户名、密码、名字和姓氏。它还有一个标记为“list_access”的列,用于另一个表。

第二个表 word_lists 是一组行/记录。每列将包含一个单词(第一列是主键/id 列除外)。这个想法是应用程序会检查用户帐户信息中的数据,并查看他们可以访问哪些单词记录,然后将单词列表拉入应用程序中并放入一个数组中。

这是设置它的有效方法吗?user_info 表中 list_access 列中的列应该是什么类型的数据?我很难弄清楚如何拥有可以访问哪些列表,然后让它验证要从中提取哪些列表。这通常是由应用程序还是由 php 脚本处理的?

我非常感谢任何帮助,因为这是一个缓慢的过程,将我迄今为止学到的所有东西拼凑在一起。

4

1 回答 1

0

如果您在 user_info 表中有一个用于 list_access 的列,请考虑您要在其中存储的内容:

  1. 单个 word_list ID
  2. word_list ID 的列表,例如“1,2,3,4”。

第 1 项不好,因为它违背了您检查“哪些单词记录”要使用的要求。

第 2 项不好,因为您必须始终将该列表加入/拆分/合并在一起,并且您永远无法拥有参照完整性。

您真正想要的是一个将用户连接到单词列表的交叉引用表,如下所示:

 CREATE TABLE user_word_lists (
     user_id int unsigned not null,
     word_list_id int unsigned not null
 )

该表将为每个用户提供多行。设置两个源表的外键,并放入您需要的索引(当然是 user_id)。

希望有帮助。

于 2012-10-13T21:11:15.587 回答