我的User类中有一个静态getUser($ userID)方法,它查询数据库并为给定的用户ID返回一个User对象。PHP类设计 - 获取多个对象
有时,我有多个用户需要同时获得。我已经提出了两种选择:
- 创建一个getUsers()方法,它可以接受多个ID并执行一个查询。
- 创建一个getUsers()方法,该方法可以接受多个ID,但使用getUser方法(多个DB查询)。
在这两种情况下,我都会返回一个User对象数组。但是,如果用户ID有效或不存在,会发生什么?只需从数组中排除该用户?看起来很奇怪。
因此,这将是巨大的,得到答案:
- 我应该使用选项1或2?
- 发生无效用户ID时会发生什么情况,请忽略它?或抛出异常?
随意批评静态方法getUser()的用法,我不知道该放哪个方法,谢谢。
使用最上面的一个。减少dbms的开销,减少查询。底层会杀死性能,当它需要处理很多用户时。 – BlitZ
因此,在没有找到该用户身份的情况下会发生什么情况。返回一个空的用户对象?或者只是从数组中排除? – paul
例如,使用MySQL'IN()'语句来过滤查询。您可以构建只返回现有查询的查询。然后在php中检查结果。如果有一些'id's,没有关联的记录,那么你可能会抛出异常,如果需要的话。 – BlitZ