2012-07-23 108 views
0

問題是這樣的:一個包含多個數據庫或一個全局數據庫的數據庫結構?

我們應該每個垂直1個數據庫還是1個數據庫?網站將包含多個待售廣告。

A)每垂直例如 含義1分貝,當你查看這些網頁: http://www.site.com/cars http://www.site.com/boats

/汽車字面連接到數據庫讓我們說 「db_cars」那個數據庫只有汽車數據,沒有其他東西。 /船從字面上連接到數據庫可以說「db_boats」,並且該數據庫只有船數據,沒有其他內容。

兩個數據庫具有相同的結構,表名「項」,「賣家」等

OR

乙類)1分貝一切例如​​ /汽車連接到「立足db_everything」和過濾器的汽車錶鏈接到物品表,所以WHERE item_type =「cars」 /船連接到「db_everything」並基於與物品錶鏈接的表過濾汽車,所以WHERE item_type =「船」

所以你會選擇A還是B?任何優點/缺點?如果它是MySQL,Oracle或Postgres,它有什麼關係?

回答

1

只是我的兩分錢:

我會用不同的應用程式,而不是一個應用程序中單獨類型的數據單獨的數據庫。

想要在同一個應用中顯示船隻和汽車嗎?在同一頁上?你有沒有做過一個SQL查詢,應該返回汽車和船隻?

或者你基本上將船隻和汽車視爲完全獨立的網站嗎?如果它們是完全獨立的,並且可以單獨支持,並且可以分別修改應用程序,那麼使用單獨的數據庫是有意義的。

0

想到的一個考慮因素是站點代碼的可重用性。控制單獨的數據庫用戶名:數百個類別的密碼組合聽起來很煩人。

在性能方面,我認爲分離變得無關緊要,除非您的獨立數據庫位於不同的機器上。

也取決於你的使用...

長期,讓他們中一個數據塊可能給你更多的靈活性和機會產生趨勢數據,或交叉鏈接類別。

但是,如果您正在製造引擎以銷售給特定行業的其他公司,那麼每垂直1分貝就很合理。

我自己的傾向會是情況B,除非特殊需要告訴我,否則。

0

只要數據庫位於同一用戶的同一臺服務器上,您仍然可以進行連接等操作。但是,如果您需要超過30張表格用於您網站的某個部分,我纔會推薦。 當您必須直接在數據庫中工作時,它可以讓管理變得簡單。

但是,如果您的網站不需要這樣的複雜程度,我會反對它的建議,它不值得麻煩。

0

如果是MySQL,Oracle或Postgres,它無關緊要嗎?

絕對如此。

Oracle中的術語「數據庫」意味着與大多數其他數據庫完全不同的東西。如果您在MySQL或Postgres(或SQL Server)中考慮「數據庫」,您通常會在Oracle中考慮「schema」(= user)。

在PostgreSQL中,您無法執行跨數據庫查詢。所以對於分離來說,模式可能更好(因爲它更靈活)。

關於您的實際設計決定:聽起來您可能想要將所有內容都放在一個數據庫/模式中,但是沒有足夠的信息來真正回答這個問題。

wegjprgm的回答幾乎釘我想。

相關問題