1 回答

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
好吧,這是性能和靈活性之間通常的權(quán)衡。使用第一種方法,您可以獲得更好的性能(您的模式只適合要運(yùn)行的確切查詢),但缺乏靈活性(如果您需要添加更多查詢,則說明可能不太匹配-甚至根本不匹配),其中這種情況下,您可能必須使用更新的架構(gòu)(可能是從原始資源中重新填充數(shù)據(jù)庫),而第二種架構(gòu)(希望)具有規(guī)范化的架構(gòu),但是會(huì)使數(shù)據(jù)庫服務(wù)器上的查詢變得更加復(fù)雜和繁重。
現(xiàn)在的問題是:您真的必須選擇嗎?您還可以同時(shí)具有完全規(guī)范化的數(shù)據(jù)和非規(guī)范化(預(yù)處理)的數(shù)據(jù)。
附帶說明:Django ORM實(shí)際上確實(shí)是大多數(shù)“ 80/20”工具-它旨在使80%的簡(jiǎn)單查詢變得超級(jí)簡(jiǎn)單(比說SQLAlchemy容易得多),然后確實(shí)變成了PITA的一部分-但沒有什么可以強(qiáng)迫您對(duì)所有內(nèi)容使用django的ORM(您可以始終使用原始sql或同時(shí)使用SQLAlchemy)。
哦,是的:您的問題并不新鮮-您可能需要閱讀有關(guān)OLAP的信息
添加回答
舉報(bào)