2016-04-23 79 views
0

好的。所以我必須建立一所學校的數據庫,並且我有義務與我創建的每個表格建立關係。到目前爲止,我已經有幾張桌子和幾個關係,像這樣:我有Classrooms表格,包括IDClassroomNumber(如101,203等)。在另一個Subjects表我有SubjectNameClassroomID和這樣的關係:從Classrooms代碼中的SQL關係

enter image description here

在代碼(C#)我Select值,但我必須使用join/where,所以我加where s.ClassroomID = c.ID(之前定義的s和c)。好的,它的工作。但我的問題是不同的。爲什麼我有義務使用關係?他們是爲了什麼? Joinwhere正在工作沒有關係,爲什麼?

+0

請教[基礎數據庫設計?](http://stackoverflow.com/questions/29930453/) –

+0

你沒有義務。如果你有這樣的問題,可能是你選擇了錯誤的工具來完成你面臨的任務。 Sql DBs在很多情況下都是完美的,但是你的milage可能會有所不同。 – Serg

+0

男人,我是。你知道,我在大學裏,他們給我這樣一個有很多很多要求的練習,而且我真的必須這樣做 – Frynio

回答

3

這是爲了確保數據的完整性。確保更少的shit數據進入數據庫。也有一個結構數據庫,也是其他人可以輕鬆理解的。

不要質疑它。你需要他們。你想要他們。在一個DWH中你不需要,但是在一個事務性數據庫中你是這樣做的。

1

外鍵是基於表/列之間的關係的索引。這變得非常重要你的桌子變大。如果您嘗試連接兩個包含數百萬條記錄並且沒有索引的表,查詢將花費更長時間才能完成。