0

我正在工作中构建一个 Web 应用程序,并且我有一个表单,用户可以在其中注册某些类型的信息。

Username   |   Password   |   Company

现在我不确定如何处理这个问题。我想要的是当用户提交该注册表单时用户名、密码和公司被写入一个数据表(用户)但是因为公司在用户数据表中是一个外键引用我需要将公司写入一个单独的数据表(公司)作为主键(当然用户名要写为 FK 引用,因为它是 1 - 1 关系)。

我不是在寻找你们的编码解决方案,因为我知道我的 PHP 和 MYSQL,我只是在寻找一些伪代码算法来让创意源源不断!

编辑:我使用的是 POSTGRESQL 而不是 MYSQL,但我很确定除了端口号和小的语法更改之外几乎没有什么区别

4

3 回答 3

1

假设第一列是id

  1. 保存公司$mysqli->query("INSERT INTO company VALUES (NULL, '$company_name')";
  2. 获取此项目的 id。$company_id = $mysqli->insert_id;
  3. 使用此 ID 保存用户$mysqli->query("INSERT INTO user VALUES (NULL, '$username', '$password', '$company_id')";
  4. 获取用户id$user_id = $mysqli->insert_id;
  5. 用它更新公司:$mysqli->query("UPDATE company SET user_id = $user_id WHERE company_id = $company_id)";
于 2012-07-26T14:57:46.573 回答
0

开始在您的表公司中插入您的公司。找回身份证。(有一个类似的 sql 请求LastInsertId)在您的表用户中插入用户/密码/IdCompagny。

编辑:一些帮助:http ://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

于 2012-07-26T14:56:23.843 回答
0

一些问题:

  • 为什么用户:公司 == 1:1?如果我和同事加入您的网站,我们是否需要假装在不同的地方工作?
  • 如果公司可以拥有一名以上的员工,您将采用哪种验证来组合公司名称的变体(例如 IBM 与 International Business Machines)?
  • 如果用户失业怎么办?

如果公司是一个很好知道的数据而不是一个必需的或事情中断的数据,我可能会先注册我的用户。然后,当用户登录时,您可以唠叨他们以获取更多信息。这具有使用户注册对用户来说不那么繁重的额外优势。

一个用例:

  • 用户提交usernamepassword
  • 过滤坏东西的输入并验证重复、适用性
  • 保存到数据库并检索用户 PK
  • 加载“附加信息”页面并将会话变量设置为“唠叨”标志 - 如果用户选择不填写附加信息,唠叨标志可以触发提醒行为
  • 将自动完成添加到公司字段,以便用户可以使用现有的公司表条目
  • 处理表格并保存到数据库
    • 添加公司和关联用户
    • 或者只是关联用户
  • 取消设置会话唠叨标志,这样您的网站就不会继续唠叨
于 2012-07-26T15:27:27.717 回答