Sql-Server

多張同一個主鍵的表好還是一張大數據表好?

  • December 8, 2020

因此,到目前為止,只有一個主鍵用於位置 ID。

目前在 Excel 中有多個表格(工作表)用於以下內容

  • 事件(位置 ID、日期、標題、描述)
  • 動物(位置 ID、物種、名稱、種群)
  • 限制(位置 ID、許可證、區域)

以上是不好的做法嗎?根據我線上閱讀的內容,您不應該在多個表中使用相同的主鍵。

應該如何建構表以遵循“最佳實踐”,它是一個大數據庫表還是可以留在多個表中?

根據 mustaccio 的評論,當您PrimaryKeyTables每個Table. 換句話說,根據您Tables在問題中提供的架構,您將永遠無法在一個事件中擁有超過一種動物,或者對特定動物的限制超過一種,等等。它們都共享相同的unique位置ID。

如果這滿足您的需求,那麼您的設計就可以了。但是,如果您希望能夠在多個事件中擁有多個動物,並且針對不同位置等具有不同的限制,那麼使用以下設計可能會更好:

添加第四個Table名為 Locations 的 Location ID PrimaryKey

從所有其他位置刪除位置 ID PrimaryKey(和),而是在它與位置 ID 上的位置之間創建關係。unique constraint``tables``ForeignKey``table

unique PrimaryKey使用適當的名稱向事件、動物、限制添加一個新欄位tables(例如,事件的事件 ID table、動物的動物 IDtable等)。

為了直接回答您的主要問題,最好將它們分開Tables。這稱為數據庫規範化,對於查詢效率和消除不必要的數據冗餘很重要。一般來說,關注點分離應該被拆分成單獨Tables的 .

引用自:https://dba.stackexchange.com/questions/281120