簡體   English   中英

MySQL數據庫設計。 如何在關系數據庫中使用日期?

[英]MySQL Database Design. How to use dates in a relational database?

我正在建立一個數據庫,以匯編來自各種來源的各種新聞文章,並且我正在嘗試找出最有效的方法來對文章的撰寫日期進行分類。

就目前而言,我正在考慮使用一張包含所有日期的表,然后將數據庫中的文章條目指向日期表中的相應條目。

顯然,這個問題會引起很多問題,其中最重要的是我必須創建的日期太長,笨拙和冗長。

有更有效的方法嗎? 請記住,數據庫中的幾個表將使用date表。

在此先感謝您,並感謝您閱讀我的文章...

使用MySQL DateTime格式 不要為日期創建單獨的表格。 MySQL經過優化,可以在每種記錄中存儲該格式並對其執行操作。

OLAP比為OLTP使用更多的日期創建單獨的表,並且我認為您正在構建OLTP系統。

創建單獨的表的最大問題是,您需要在可能使用的每個可能時間都有一條記錄,然后需要在該表上執行查找以查找外鍵。 那根本不是一個好主意。

看到您在問這個問題時,我認為除了簡單地將日期時間存儲在每一行中之外,您不需要進行任何其他優化。 如果您正在構建某個重要的東西,您可能比我反而是會更好。

正如Ethan所建議的那樣,只需將日期存儲在與文章相同的表中,無需查找。

您可能希望將文章的某些詳細信息與文本正文分開存儲,以可能加快搜索速度,但我會從簡單開始。 將所有相關數據存儲在一張表中,並且僅事情運行緩慢時才使用分區(避免過早優化)。

除了主表,我建議您創建一個輔助日歷表,以協助基於日期的查詢。 與您所說的相反:

...我將不得不創建的日期令人難以置信且冗長。

包含未來50年日期的表僅超過18,000行,根本沒有多少。

如果您將要處理大量日期,我建議您看一下Richard Snodgrass的“ 用SQL開發面向時間的數據庫應用程序” ,它是一個很好的資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM