鍍金池/ 問答/人工智能  Python  數(shù)據(jù)庫(kù)/ 如何設(shè)足球聯(lián)賽積分榜這樣的關(guān)系型數(shù)據(jù)庫(kù)呢?

如何設(shè)足球聯(lián)賽積分榜這樣的關(guān)系型數(shù)據(jù)庫(kù)呢?

我是想弄一個(gè)關(guān)于足球聯(lián)賽的積分榜數(shù)據(jù)庫(kù)。
有球隊(duì)表,聯(lián)賽表,比賽表,然后是積分排行表。

本來想著是個(gè)很簡(jiǎn)單的問題,著手去畫圖的時(shí)候發(fā)現(xiàn)是個(gè)對(duì)于我這樣的小白來說很困難的事。
我覺得難以理解的地方有以下幾點(diǎn)望大佬們解惑

1,主要困惑在積分榜表,我一開始忽略了年度跟賽季這個(gè)概念,后來實(shí)際做的時(shí)候就困惑了。我一開始想所有隊(duì)伍做在一個(gè)表里,除了必要數(shù)據(jù)字段外,額外建兩個(gè)聯(lián)賽字段與年度字段來區(qū)分,后來覺得這樣好像有點(diǎn)傻吧,就只把隊(duì)伍全放一個(gè)表,然后一年一個(gè)表,過一個(gè)賽季就新建一個(gè)各分表不知道這樣如何實(shí)現(xiàn),或者說這樣合不合適。。

2,我有設(shè)想由記錄的比賽表里面的比賽信息的勝負(fù),去生成積分表的信息(因?yàn)橹皇呛?jiǎn)單的記錄比分結(jié)果,所以我感覺可以通過比賽的結(jié)果來生成積分榜表)但碰到的問題其實(shí)還是如問題1積分表如何持久化保存的問題,還要方便查詢

3,如果是分開保存的,比如一年一個(gè)積分表,那如何做這些表跟球隊(duì)與比賽的關(guān)系。如果是保存在一起(像在問題1里所述用字段分年度)那就需要一個(gè)年度表(賽季表),來跟積分表做一對(duì)多的關(guān)系(聯(lián)賽表1,積分表N),這樣的話還需要再做一個(gè)字段在積分表里,用來標(biāo)記為當(dāng)前年度的(感覺想的好復(fù)雜了,新聯(lián)賽開始,還要寫個(gè)代碼把上一聯(lián)賽的這個(gè)字段改成非當(dāng)前賽季的)

上面胡亂說了很多,望大佬們海涵,求有經(jīng)驗(yàn)的大佬給點(diǎn)思路。。。 現(xiàn)在想到這個(gè)問題就頭疼

PS:或者 我看網(wǎng)上還有一種方案,就是把比賽信息強(qiáng)化一下完善信息并加上年份字段,當(dāng)需要排名信息的時(shí)候直接讀取該聯(lián)賽所有比賽信息實(shí)時(shí)計(jì)算,就不用提排榜了。 這樣是否對(duì)運(yùn)算能力有要求

回答
編輯回答
喜歡你

基本信息,就是一個(gè)“比賽”,基本字段: id,主隊(duì),客隊(duì),結(jié)果。就完了啊,其它的東西,要么在上面加外鍵,比如什么國(guó)家,賽季,聯(lián)賽,要么通過計(jì)算可得。

然后,可以有一個(gè)現(xiàn)成的積分 Table ,不過事實(shí)上它里面的信息是冗余的而已,這個(gè)表刪了也沒事。

2017年3月6日 18:52
編輯回答
吢丕

年度 一對(duì)多賽季
寒季 一對(duì)多 比賽 主場(chǎng)隊(duì) 客場(chǎng) 隊(duì)
隊(duì) 多對(duì)多賽季 多對(duì)多中間表冗余進(jìn)球,冗余幾勝,冗余幾平,冗余幾負(fù),冗余積分
不冗余也可以強(qiáng)sql 完成

2018年度 甲A 第二輪 國(guó)安主場(chǎng)對(duì)天津.
國(guó)安,2018年度甲A,共賽8場(chǎng) 積十六分五勝三平.

2017年4月10日 16:27