2012-06-11 22 views
1

http://iforce.co.nz/i/v4w35nil.2sj.jpg该数据库应该如何布置/如何实现3NF?

我需要制作一个Sudoku游戏数据库,其中包含3NF图中提供的字段。问题是,我该如何在这张桌子上实现3NF,以及如何建立这种关系?我做了一些搜索,我仍然感到困惑。

忽略admin表,这与这个问题无关。

谢谢

+0

您认为哪个字段在pk上没有功能性depdancy? –

+0

提交表中的拼图ID? –

+0

真的吗? PuzzleID在提交表中依赖的候选键是什么? –

回答

0

原来的一对表看起来不错。你在Puzzles表中有一个正式的解决方案(尽管显然不是,原来的拼图)。您提交的内容可以获得唯一的ID号码并参考拼图,并包含其他信息。

我不确定我是否理解线上的标记,但应该是'0或更多提交'可以引用给定的谜题(也就是说,我认为,左端乌鸦的脚指示了什么;我不确定H在另一端或虚线)。

根据您的规则,您可能希望对电子邮件地址设置一个唯一的约束(每个参赛者只有一个条目),或者您可能只需要一个'email + timestamp'上的唯一约束条件(单个用户不需要两个条目一秒钟)。

但基本表在5NF,因此也在3NF。

+0

谢谢你的乔纳森。所以我发布的第二张图也是在3NF?原始文本上的标记意味着对于每个拼图,可以有零到多个提交,但对于每个提交,只能有一个拼图。 –

+0

可选标记可能不正确,第二个图与第一个图相比没有优势。这并不是说单个提交将会作为多个难题的答案发布,是吗? –

+0

好的,我必须检查我的标记。我想第二个图对数据库没有任何好处,除非数据库的要求发生变化,以便按照用户而不是按照提交的方式存储提交内容。非常感谢您的帮助。 –

相关问题