映射表时将数据输入小型数据库的最佳方法是什么?

时间:2014-04-22 07:25:35

标签: php postgresql

我有一个小问题,我相信你们所有聪明的人已经有了一个简单的解决方案。我还没有实现它。

我是一个项目的设计师,作为这项工作的一部分,我依赖于PostgreSQL数据库,所以我有一个版本的事实。我使用常用​​做法设置表格,例如为每个表使用PK(串行)。当我将两个表链接在一起时,我将使用外键。这有助于我在理智上检查设计并对其进行报告。

例如,以下三个表格各有一个字段:

student_id : student_name
1          : j bloggs

class_id   : class_name
1          : physics

student_class_assoc : student_id : class_id
1                   : 1          : 1

我可以使用PGAdmin为学生和班级输入数据没问题,但是当涉及将学生和班级联系在一起时,我必须去每个表并找到id。在这种情况下,它是微不足道的,但是当我有大约70或80个条目时,它变得很麻烦。理想情况下,我想通过搜索student_name和class_name字段然后输入相关的id来输入数据。

我已经考虑过使用简单的PHP表单来做这件事,但我想我会先问别人,看看是否有更好的解决方案。

最诚挚的问候,

亚当

1 个答案:

答案 0 :(得分:0)

假设student_class_assoc是序列号

insert into student_class_assoc (student_id, class_id)
select student_id, class_id
from
    (values
        ('j bloggs', 'physics'),
        ('m mary', 'math')
    ) a (student_name, class_name)
    inner join
    student using (student_name)
    inner join
    class using (class_name)

但是存在常见名称的问题。如果有两个m mary,则它们都在math类中。

相关问题