1

我有一个带有 servlet、jsp、java 等的 Java webproject。里面有很多项目,我可以在这样的组合框中进行选择:

Project [Combobox]    

Priority[Combobox]     Stage[Combobox]

对于每个项目,我可以在组合框 Priority 和 Stage 中选择其他值。所以我们可以说,优先级和阶段的值总是与选择的项目有关。

在数据库中,我有这样的表:

Table project:
projectid    
projectname

Table priority
id 
priorityname 
projectname

知道我是否有优先级的值 prio1 并且我想给这个值项目 1 和项目 2,我必须在表优先级的数据库中做两个条目:像这样

id priorityname projectname
1  prio1        project1 
1  prio1        project2

但是我只想对数据库做一个条目:所以我在数据库中的想法是这样的:

id priorityname projectname
1  prio1        project1,project2

我在这方面没有太多经验。所以我想告诉你这个,也许我的想法不好,我希望有更好的解决方案。

4

1 回答 1

2

您不能在一个数据库字段中插入多个值。

根据您使用的数据库,应该有不同的方法来实现您的目标。如果您的数据库支持外键(例如数据库支持),请尝试使用外键MySQL InnoDB

使用外键,您需要从Project表条目指向Priority条目。然后,您可以进行SELECT查询,例如:

SELECT * 
FROM projects, 
     priorities 
WHERE projects.proj_priority = priorities.prio_id 
  AND priorities.prio_name = "prio1"

(假设)

这些表看起来像这样:

projects (proj_id, proj_name, proj_priority)
priorities (prio_id, prio_name)

其中proj_idprio_id是主键,proj_priority是外键。

于 2013-06-06T06:27:18.073 回答