我正在和一位朋友爭論我們學校項目的統計表。 這並不複雜,我們搜索一場比賽,每場比賽和一個球隊的比賽,10個統計 我們中的一個只想爲每個屬性添加一列,而另一個則喜歡名稱列和統計列數。對MySQL數據庫的建議:多列或多行?
哪個是優化數據庫的最佳方式?
我正在和一位朋友爭論我們學校項目的統計表。 這並不複雜,我們搜索一場比賽,每場比賽和一個球隊的比賽,10個統計 我們中的一個只想爲每個屬性添加一列,而另一個則喜歡名稱列和統計列數。對MySQL數據庫的建議:多列或多行?
哪個是優化數據庫的最佳方式?
的多個統計數據列將導致查詢方面更大的靈活性,而且在大多數情況下,更高的速度。一個狹義的表格設計,風格:user_id,stat_name,stat_value更加靈活,即你可以輕鬆地添加新的統計類型,但不能很好地擴展。
在大多數情況下,底線多列將爲您提供更好的速度。只有狹義的桌子設計纔有意義的情況是,當你不知道你的數據會是什麼。
如果你想要一個規範化的數據庫(和你這樣做),任何一個都不是正確的答案。
因爲每個團隊都有很多統計數據(你不會說他們是什麼),所以你需要一個團隊表和一個具有一對多關係的統計表。這意味着兩個表的主鍵(如第一範式所需)和子統計表中的外鍵指向父團隊。
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)
);
您需要在StackOverflow問題中顯示您的模式或某種形式的最小嚐試編程。 – jeremyjjbrown