所以,我有一张骑马桌和一张候选桌。每次骑行最多可有12名候选人参加,每个候选人都有各自的成绩。此外,我有一个投票划分表,这是类似于骑马表,除了数百个分区通常共享同一组候选人。
我很难用它来设计数据库。目前,我每个候选人有2列,其中一列将ID存储到候选人表中,另一列则存储结果。like表如下所示:
(riding_id INTEGER, name TEXT, cand0_id INTEGER, cand0_result INTEGER ... cand11_id INTEGER, cand11_result INTEGER)投票划分表类似。
候选人表如下所示:
(cand_id INTEGER, riding_id INTEGER, name TEXT)如果骑行或民意测验的候选人少于12人,那么这组列是空的。然而,这是很难处理的,因为它需要大量的查询才能得到我需要的每一列,并在候选表上加入一个巨大的连接。
如果我只使用骑行,我可以使用候选表中的骑行id来表示这个关系,但也有几百个投票分区,这意味着如果我想对投票分区做同样的事情,我会再次遇到“大量的列”问题。
有什么合理的方法来整理我的数据吗?
发布于 2018-11-27 17:32:29
您肯定希望保持一个明确的设计,并避免有一个“跨”列的设计的愿望。您的设计应该包括将数据转换为报告所需的其他布局表单的视图。
基于您的问题和对投票管理的推测
candidates
----------
candidate_id
name
affiliation_id
etc...
ridings
-------
riding_id
name
etc...
riding_candidates
-----------------
riding_candidate_id
riding_id
candidiate_id
result
polling_divisions
-----------------
polling_division_id
name
etc...
polling_division_candidates
---------------------------
polling_division_candidate_id
polling_division_id
candidate_id
detail... (specific to division+candidate combination)
etc...https://stackoverflow.com/questions/53504470
复制相似问题