【问题标题】:How do I easily store user account details?如何轻松存储用户帐户详细信息?
【发布时间】:2012-05-19 09:10:23
【问题描述】:

我发布此消息是因为我不确定进一步调查的确切技术和方法。

我想建立一个简单的网站:

1) 用户使用用户名和密码登录。

2) 用户保存简单页面,其中包含从他们填写的表单中获取的输入。

3) 用户注销,但所有数据都保存在服务器上。

4) 用户再次登录,可以看到存储在其帐户中的所有内容。

这一定很简单,但没有太多开发知识,我有点不知道下一步该去哪里。

我对以下内容有所了解 - HTML/CSS/Javascript/PHP/MySQL

因此我在考虑这种方法:

1) 基于 php/mysql 脚本的用户帐户。

2) 用户通过 html/php 表单输入简单页面。为效果添加了 javascript。

3) mysql 数据库中记录的所有表单输入。

在 mysql 数据库上 - 这应该如何构建?

1) 用户账户表: 用户名 |电子邮件 |上次登录

2) 简单表格: 用户名 | Form_Field1 | Form_Field2 |形式....

有没有更好的方法来存储单个用户信息 - 全部存储在一个表中或每个用户一个表中?

由于编码不是我的强项,是否有我可以利用的预打包脚本等。我正在考虑将可用的后端与 Twitter Boostrap 前端相结合。

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

    是的,有一种更有效的方式来存储该数据;

    您的用户必须具有以下列:

    • id - 选中 AUTO_INCREMENT 选项的整数,PRIMARY_KEY - 用户的唯一 ID
    • 用户名
    • 电子邮件
    • 密码
    • last_login

    你的 forms 表应该是这样的结构:

    • id - 选中 AUTO_INCREMENT 选项的整数,PRIMARY_KEY - 记录的唯一 ID
    • user_id - 填写/发布表单的用户 ID
    • field1
    • field2

    【讨论】:

    • 或者甚至可以将forms 表更改为包含iduser_idfieldnamevalue。让您在未来添加字段时更加灵活。
    • 不,它没有。这是一种错误的做法。如果你要这样做,你需要一个单独的表。您最需要关心的是尽可能少地重复数据!
    • 我会说这绝对取决于项目的结构。只是添加了另一个替代解决方案。
    【解决方案2】:

    你的方法很好;我唯一要说的是,不要考虑将每个用户的信息存储在单独的表中的方向。您在问题中概述的结构很好,即:有一个用户表,其中包含用户名、密码、last_login 等,另一个表用于其他“字段”,正如您所说的那样。当您从另一个表中获取数据时,请确保将用户名包含为连接两个表的 key。确保将两个表中的 username 声明为唯一键。

    【讨论】:

    • 这显然是错误的方法,因为您有重复的数据 - 用户名通常是一个大约 10-30 个字符长的字符串。这肯定不像你只有一个 user_id 那样有效!
    【解决方案3】:

    为每个用户创建 1 个表会使您的数据库变得如此复杂..

    你可以像这样创建3个表::--

    1) table_user 字段:-- id, name, account_details_id[外键]

    2) table_account_details:-- id, username, password, email, last_login

    3) table_form:-- id, form_field, user_id[外键]

    【讨论】:

    • 如果你想拥有一些疯狂的个人信息,这很有价值,否则它会减慢获取这些数据的查询。
    猜你喜欢
    • 2023-02-22
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多