我是jsp的新手。我想做一个测试项目来熟悉它。
我选择做的项目是设计一个人们可以注册并为自己制作简历的网站。
每个注册的人都可以定义他之前曾参与过的一些项目。
例如,如果我使用用户名 SHT 注册并定义 PROJECTA 和 PROJECTB ,则表示这些项目应显示在我的简历。
顺便说一句,我想使用MVC设计。
我的问题是,当我想设计模型类时,我不知道哪种方法最适合以下场景:
1-我首先想到的是,我可以为 Users 创建一个包含 UserId 和 UserName 的类, ...
我需要 Projects 的另一个类,其中包含 ProjectName 和 ProjectId ,还有 UserProject 的另一个类 > UserId , ProjectId ,以便能够找到属于特定用户的项目。
在这个例子中,我有一个User类的用户对象,UserId为1,UserName为'SHT'。
我有两个来自项目类的对象:
OBJECT1 {ProjectId = 1,ProjectName =“PROJECTA”}
OBJECT2 {ProjectId = 2,ProjectName =“PROJECTB”}
我再次从UserProject获取这些对象:
OBJECT1 {UserId = 1,ProjectId = 1},
OBJECT2 {UserId = 1,ProjectId = 2}
2-第二种方式,我可以为 Projects 创建一个包含以下字段的类: ProjectId , ProjectName 。我还为 Users 添加了另一个类,其中包含以下字段: UserId , UserName 以及用户项目列表。
例如,我有这样的方式:
来自Projects的2个对象:
OBJECT1 {ProjectId = 1,ProjectName =“PROJECTA”}
OBJECTB {ProjectId = 2,ProjectName =“PROOJECTB”}
来自用户的对象:
USER1 {UserId = 1,UserNAme =“SHT”,ListOfProjects = {ProjectId = 1,ProjectId = 2}}
这是我想到的两种方式。但我不知道在这种情况下哪一个更好。 我想也许第一种方式更好,因为后来我可能想要添加每个用户可以注册某些项目的功能,每个用户都可以拥有技能列表等等。有了这些功能,我想第一种方式可能更容易处理。
任何人都可以帮我找出哪一个更好吗?
如果您认为有更好的方法,我将非常感激。
提前感谢您的关注。
答案 0 :(得分:0)
我想说你要判断解决方案有3点。
对于两个解决方案,存储空间渐近相等,对于解决方案1中的每个UserProject对象,解决方案2中某个用户的ListOfProjects中有一个项目。
做项目 - >用户搜索他们也表现得同样好,因为在解决方案2中,您必须遍历每个用户并查看他们所处理的项目与解决方案1中的每个UserProject相同。
为了做一个用户 - >项目搜索解决方案2更快,因为它可以直接从具有答案的用户获取列表。
我自己也会提出另外两种解决方案,我们称之为解决方案3和解决方案4.
解决方案3:与解决方案2相同,但反过来说,项目会存储使用它们的用户列表。
解决方案4:解决方案2和解决方案3相结合,用户可以存储他们正在工作的项目,项目存储用户正在处理这些项目。
所有解决方案的优缺点:
我认为解决方案1绝对是最糟糕的选择,其他选择取决于你的情况。