簡體   English   中英

symfony2中的實體和數據庫設計

[英]Entities & database design in symfony2

我正在尋找有關數據庫設計的一些建議。

我正在symfony2平台上構建一個幻燈片應用程序,並且我有四種不同類型的幻燈片容器(公司,地理區域,屬性和單個監視器)。 這是為了組織內容並沿線繼承內容(監視器位於屬性中,屬性是地理區域的一部分等)。

現在,在平面PHP上,我將只使用兩個表“容器”和“內容”,並在容器表中放置一個類型字段,以定義所討論的容器是否是地理區域,屬性等,並僅鏈接每個內容用FK片(即滑片)到適當的容器。

現在,了解symfony2的實體系統,似乎我可以通過將不同的容器類型定義為單獨的實體來獲得很多繼承權,從而能夠獲取例如地理區域並自動返回其所有子項對象(所有屬性,以及屬於該屬性的所有監視器)運行中。 但是,我確實希望能夠在不同的容器和不同的容器類型之間切換內容塊的“所屬”。 我認為,采用上述方法會有些麻煩,如果內容必須具有“屬於”四種不同完整類型中的任何一種的能力,那么很可能會出現內容關系(FK)的問題?

在symfony2世界中經驗豐富的人也許可以啟發我前進到這里的最明智的途徑?

在我們的項目中,我們使用Propel 1.6PropelBundle

它的語法對開發人員非常友好。 Propel一大優勢是表之間的“偽”關系。 在您的架構中,只需定義skipSql = true標志,就可以省略FK的生成,但是只需通過定義的偽關系就可以獲取另一個對象。

在您的情況下,結果將如下所示:

$containers = ContainerQuery::create()->findByXXX('xxx');
$containers->getFirst()->getContents(); // Will return all joined content for the first container

在填充具有相關對象的對象時-您獲得了使用反向關系的絕佳機會:

$contents = $container->getContents();
$container = $contents->getContainer();

只需提出評論,我將根據您的需要擴展我的回答;)

暫無
暫無

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

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