如何設計SQL,表的字段屬性經常要變動?

時間 2021-06-02 11:45:41

1樓:cabbage

用不用nosql在一定程度上基於你的資料量/併發/延遲和查詢方式nosql在使用上肯定沒有sql在資料關係結構上方便,你這種情況,考慮是否用nosql要慎重。

另外,用sql可以把這些資料放到乙個json存乙個column裡面,然後你可以自由加減,前提是這個資料量不會特別大,sql中每個column大小是有限制的。

nosql一般都是key/value pair, 如果你的資料量特別大(百萬級),對延遲要求高的話,可以考慮,不過設計起來比sql要複雜一些。

2樓:Frank 李先生

我理解的你的問題和需求,其實並不複雜,用不用nosql,用哪種型別的nosql,都沒有一定的答案。

繼續使用mysql的話。把地理位置存乙個表,然後建立另乙個表,叫做features,儲存不同的feature,也就是你所有的統計項,你每增加乙個專案,就可以在這個表裡新增乙個記錄;然後每個地理位置和每個統計項關聯,建立第三個表,也就是《地理位置-統計項名稱-統計項數值》這樣的結構。這樣一共需要3張表搞定。

然而這樣你每次通過乙個地理位置希望看到其相關的所有統計項的時候都需要做連線查詢。不過這種程度的連線關係型資料庫來說不是問題。

如果地理位置不多,但是每個地理位置關聯的統計資料很多,希望對於乙個給定的地理位置,能夠快速的一次性得到所有資料,則也可以使用mongodb這類文件型資料庫,這個時候只要地理位置的集合,然後每個地理位置是乙個文件,它的每個統計項都是作為文件的一部分直接關聯在那個文件中的,並且每個地理位置不需要有統一的統計項模式,就類似json物件和屬性,文件的結構完全是可變的,集合中的每個文件都可以有自己的結構。這種方案的好處,就是通過乙個地理位置來檢索,可以直接得到所有地理位置相關的資料,不用做連線查詢。

當然用不用nosql資料庫還有其他因素需要考慮,例如你的資料的讀請求和寫請求的比例;是否要支援事務;以及是否需要查詢制定經緯度範圍的地理資訊查詢(可以通過分別儲存經度和緯度然後加索引)等等。

在SQL中,如何查詢某一字段中最大值的資料?

南瓜 這不是超簡單嗎,首先有索引的情況下不要使用max函式效率太低 最高效寫法是 select from table where date select date from table order by date limit 1 desc select top 1 with ties from ta...

平面設計有那些屬性是對立的?

大仙er 從某種程度上說,和自己的設計觀點不一致的說法或想法就是 對立 的。設計本身是一件非常主觀的事情。遇到對立的觀點也是很正常的,關鍵在於設計師如何去引導對方與自己達成一致,一味地去遷就或者怒懟對方都不是好辦法,很可能導致雙輸。 1ightmagic 平面設計中肯定有對立存在,但不會是絕對的對立...

物件導向設計 表設計 OR的一些疑問

查了一些資料,補充一下 其實不用太過糾結物件設計的是否符合OO,比如不是說User與Message是1v多關係,就一定要在User中加入List messages這樣的屬性來表示這種關係。而要秉承幾個原則 1.實現簡單且符合業務需求。2.模組化。3.靈活性。4.易於擴充套件。比如在上面的User與M...