答案 0 :(得分:3)
答案 1 :(得分:1)
在我看来,
如果你确定你永远不需要添加新的森林而且总是你;必须在这三者中进行选择,这是一个很好的解决方案,因为表之间没有连接,结果将被更快地检索。 但是因为数据库太小(只有两个表),所以没有任何区别。
答案 2 :(得分:0)
嗯,这实际上取决于您在此尝试解决的域名问题。
如果你是上帝:)你可以确保每个物种只存在于一个森林中,那么我认为你的设计没有错。越简越好。
但是,如果您将要在多个林中存在物种 OR 以后添加新林,那么您可能希望将其重构为{{表}和Forest
表和Species
表之间的联结表(多对多)。
答案 3 :(得分:0)
如果你对约束感到满意,为什么选择
答案 4 :(得分:0)
以下是我在描述中发现令人困惑的内容。
首先你说,My database will only contain a few species and the forest(s) in which they can be found
,你似乎只允许一个物种居住的森林。但后来你说,I'll make sure that each species only lives in one of these three [forests]
。现在它似乎让你真正想要的东西感到困惑。
当这一点结束时,我将能够告诉你是否需要endemic
列,因为如果你让每个物种只生活在一个森林中,那将会自动生成它们所有地方病,不是吗?
另外,回到你说的地方,'我会确定......',你的意思是你不打算将其作为数据库设计的一部分来实现吗?
答案 5 :(得分:0)
我会做得很好。只是因为你知道要求不会改变,并不代表他们不会!对于你所知道的一切*当你完成项目并采用适当的方法可能会产生重大影响时,可能会出现新的要求!
对于相对较小的牌桌,速度差异可以忽略不计。
如果这是一个学校项目,那么,如果老师要查看你的解决方案,他们几乎肯定希望看到一个“正确”的方法。或至少说明为什么你没有按正常方式做到这一点。
(*)在这种情况下,您可能真的知道要求不会蠕变,但在现实生活中的编码工作中,他们几乎总是这样做!