MySQL、用户结构和条件

MySQL、用户结构和条件,mysql,workflow,structure,Mysql,Workflow,Structure,我对MySQL和数据库相当陌生,但我正在努力学习:) 我现在已经建立了一个包含两个表的数据库。其中第一个,user_info,包含一个在线应用程序的用户列表,以及他们的帐户信息,例如;用户名、密码、名字和姓氏。对于另一个表,它还有一个标记为“列表访问”的列 第二个表word_list是一组行/记录。每列将包含一个单词(第一列为主键/id列除外)。其想法是,该应用程序将检查用户帐户信息中的数据,并查看他们可以访问哪些单词记录,然后将单词列表拉入应用程序的数组中 这是一种有效的方法吗?“列表访问”列

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

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

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

这是一种有效的方法吗?“列表访问”列中的“用户信息”表中的列应该是什么类型的数据?我很难弄清楚如何列出哪些是可以访问的,然后让它验证哪些是可以访问的。这通常是由应用程序或php脚本处理的吗


我非常感谢您的帮助,因为将我学到的所有知识拼凑在一起是一个缓慢的过程。

如果用户信息表中有一列可供列表访问,请考虑将在其中存储什么:

  • 单个单词列表ID
  • 单词列表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
     )
    
    此表将为每个用户提供多行。设置两个源表的外键,并输入所需的索引(当然是用户id)


    希望能有帮助。

    啊,这很有道理,谢谢你也解释了逻辑:)我得试试。