我正在学习成为 Java 开发人员的课程。
该课程涉及使用数据库,但不幸的是,我们从未真正设计过任何数据库。
大多数情况下,我们会获得预制的数据库,并且必须在其上实现代码以插入、更新、读取或删除数据。
但是当我的最终测试到来时,我很可能会制作涉及数据库的东西,因此我想尝试设计一些较小的东西来掌握设计的窍门,因为我注意到一个好的数据库设计在以下情况下会产生很大的不同编写代码以使用它。
我希望这些类型的问题在这里是允许的,而且不会太宽泛。
这是我为一些简单的东西而制作的小设计clubs,members带有addresses和phonenumbers。
- 会有多个俱乐部。
- 每个俱乐部都会有多个成员(显而易见)
- 一个会员不能是多个俱乐部的成员
- 一个成员可以有多个电话号码和电子邮件地址
- 一个会员只能有一个地址
- 一个地址可以属于不同的成员(夫妻或兄弟姐妹)
我最大的困惑:
如果我想在
Club描述所有者的列中添加一个列,谁也将成为成员,在不将同一成员列出两次的情况下,最好的方法是什么?我应该将所有表放在 id 的自动增量上还是这是一个坏主意?(优点/缺点?)
如果我在外键选项卡中添加外键,这些外键会自动对应于正确的表还是我也必须将这些添加到列中?(见图2)
和我可能是noobiest 的问题...我把外键
phonenumber和
(我很抱歉图片中的语言不是英语,我希望这不是什么大问题)


我有一个表存储了数千个属性的属性数据,所有属性都来自一个提要。(每天至少更新一次)。
我当然不是数据库专家,希望得到一些有关构建属性表的最佳方法的指导。挑战在于每个属性都有很多可能包含也可能不包含的属性。每个属性值都可能是唯一的,因此关系表似乎不会提供任何好处。
目前,我对该表的计划很简单,即创建一个包含许多可能为 NULL 的列的宽表。例如:
id - int(not null)
date - datetime(not null)
attribute1 - varchar(null)
attribute2 - varchar(null)
attribute3 - int(null)
attribute4 - bool(null)
ect..
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来设置它?每个属性都与该属性唯一关联,因此将它们全部保存在一个表中对我来说很有意义。
当该表中存在数千条记录时,即使大多数列都是 NULL,有那么多列会导致我出现问题吗?每天,我都需要在这个表上选择几个选择查询,每次返回数百到数千条记录。
非常感谢有关研究内容的任何建议或方向!