2014-02-07 74 views
-1

我正在和一位朋友爭論我們學校項目的統計表。 這並不複雜,我們搜索一場比賽,每場比賽和一個球隊的比賽,10個統計 我們中的一個只想爲每個屬性添加一列,而另一個則喜歡名稱列和統計列數。對MySQL數據庫的建議:多列或多行?

哪個是優化數據庫的最佳方式?

+3

您需要在StackOverflow問題中顯示您的模式或某種形式的最小嚐試編程。 – jeremyjjbrown

回答

0

的多個統計數據列將導致查詢方面更大的靈活性,而且在大多數情況下,更高的速度。一個狹義的表格設計,風格:user_id,stat_name,stat_value更加靈活,即你可以輕鬆地添加新的統計類型,但不能很好地擴展。

在大多數情況下,底線多列將爲您提供更好的速度。只有狹義的桌子設計纔有意義的情況是,當你不知道你的數據會是什麼。

0

如果你想要一個規範化的數據庫(和你這樣做),任何一個都不是正確的答案。

因爲每個團隊都有很多統計數據(你不會說他們是什麼),所以你需要一個團隊表和一個具有一對多關係的統計表。這意味着兩個表的主鍵(如第一範式所需)和子統計表中的外鍵指向父團隊。

create table team (
    id int not null auto_increment, 
    name varchar(80) not null, 
    primary key(id) 
); 

create table statistic (
    id int not null auto_increment, 
    value decimal(15,4) not null, 
    team_id int, 
    primary key(id), 
    foreign key(team_id) references team(id) 
);