-3

请告知如何执行此 php mysql 表单和数据插入。已经在此站点上搜索过,但找不到任何关于此的问题。

我有一个收集学生信息的表格 - student_info(fields: id, name, sex, dob)。我可以将它插入到表格中。现在我想创建另外两个表,比如 male_students (id, student_info_id, male_names) female_students (id, student_info_id, female_names)。我对这两个单独的表的想法是因为我可以通过 SELECT 查询轻松地显示男性和女性的列表。为此,我认为我可以做到这一点,但我不确定如何以及这是否是正确的方法。

  1. 例如,我有一个名为 form_submit.php 的脚本——它的形式为
  2. 填写和提交表格会将数据插入到 student_info 表中。
  3. 在执行第 2 步时,我想检查是否 ($sex == male) 或 (if $sec==female),分别插入到 male_students 和 female_students 中。

但我被困住了

  1. 我应该只在 form_submit.php 中编写三个单独的查询吗?
  2. 如何获取这两个表的 student_info_id。我想到了 LAST_INSERT_ID 但我很困惑如果两个用户同时填写表格会发生什么。那么如何处理呢?

如果这甚至不是正确的方法,如何填充这两个表的数据?

请指教。

问候

4

1 回答 1

0

在这种情况下,绝对没有理由将“男性”和“女性”分成各自的表格。(而且我无法想象任何有意义的场景。)

由于没有更好的术语,您要存储的实体是 Person。(用户、个人等也可以在这种情况下使用。坚持使用适合该领域的任何语言。)因此,人是表中的记录。Gender 是 Person 的一个属性,因此它是该表上的一个数据元素。传达这一点的高度简化的结构可能是:

Person
----------
ID (integer)
GivenName (string)
FamilyName (string)
Gender (enumeration)

Gender值将只是从可用的任何可能选项中选择的值。此类选项可能包括:

  • 男性
  • 女性
  • 未知
  • 未公开

有些医疗案例可能有更多选择,而心理案例确实可能会进一步增加。但是对于大多数可能被“未知”或“未公开”(或者可能是“其他”选项,尽管对于绝大多数用户来说这在表单上看起来很奇怪)覆盖的域。

要选择此信息,您只需WHERE在查询中添加一个子句。像这样的东西:

SELECT * FROM Person WHERE Gender=1

1例如,如果映射到,Male那么这将选择所有Person具有Gender属性的s Male

于 2013-06-25T15:25:24.383 回答