我有3张桌子:
1.学生:{id,name,roll}
2. subject:{id,name}
3.标记:{student_id,subject_id,marks}
我有一个返回所有学生及其标记的程序(比如getAllMarks()),我想创建另一个程序,它返回给定掷骰的标记号(比如getRollMarks(int rollno))。所以我可以通过两种方式创建程序:
1.编写适当的SQL以获取getRollMarks过程中的结果
2.在getRollMarks中调用getAllMarks,然后对getAllMarks返回的结果应用where子句。
任何人都可以建议以上两种方法的优点和缺点吗?我有2个方法2的优点:
1.SQL查询不会在程序中重复出现
2.如果一张表中有任何变化,则更改将在一个地方/程序进行,而不是在使用该表的每个程序中进行。
PS:这些表只是例如,实际上它们是更大的表,有许多参数可供查询。这个问题可以简化为我们应该在不同的程序中编写重复的查询,还是应该使用现有的程序和必需的子句(where,order by,join等)?
答案 0 :(得分:1)
如果您不想重复查询,则应该使用视图。同样表现也更快。