我想为我的关联建立一个成员数据库。我们是一个由较小的本地实体组成的国家组织。
我想知道哪种做法在速度和开销方面更好地组织我的数据库:
(顺便说一句,我正在研究joomla,如果这可能会改变一些事情)
编辑:我会更清楚地了解协会的结构。一名成员当时只能参加一个小型地方协会。所有成员都是国家协会的成员。对于每个成员(以及每个关联),数据字段都是相同的。评论我是否还不清楚:)答案 0 :(得分:2)
由于您发布的要求有限,这就是我的看法。这是第三种选择,因为您发布的2个选项确实不适合数据库。
您描述了3个不同的实体(成员,组(Assoc。),地址(位置))和每个规范化规则,您需要将它们分开。如果只保留1或2个表中的所有内容,则整个数据库中都会有重复项。就个人而言,我同意托马斯的意见,并考虑纳入我发布的第二个选项。
我刚刚给出了一个基本的表结构,再次不了解您的全部要求,因此请根据您的要求调整关系基数。我试图强调的答案中最重要的部分是适当规范化。与其他人对简单性的看法相反,你不能再简单地设置一个正确设置的数据库,而数据库又可以正常规范化。
答案 1 :(得分:1)
假设您正在跟踪所有成员的相同字段,无论本地关联如何,我都会倾向于所有成员的一个表。当您添加/删除本地关联时,这将显着降低您的维护开销。
如果不同的本地协会跟踪有关会员的显着不同信息,那么您可能需要稍微重新考虑此建议。
答案 2 :(得分:1)
我会考虑第三种选择:成员表,关联表和将两者联系在一起的表。通过这种方式,同一个人可以成为多个关联的一部分,而无需复制他们的信息。
答案 3 :(得分:0)
我会建议一张大桌子。即使将它拆分在理论上更快,在简单性方面也会失去很多优势。例如,就速度而言,考虑针对一个表调整和优化查询的简单性,而不是10个表。
另外我担心如果你有多个表,你会有很多冗余。因此,无论如何,如果您进行拆分,请尝试最小化冗余并使用关系以避免维护大量几乎相同的表。