我有一個Rails網站有三個表格:用戶,任務和TaskInstance。任務表就像任務的主要列表,不與任何特定的用戶耦合,而TaskInstance表包含指示用戶完成特定任務的記錄。換句話說,TaskInstance具有用戶標識,任務標識和完成狀態(布爾值)。用戶有很多TaskInstances。將新數據添加到數據庫的最具可擴展性的方法?
我想讓管理員添加新的任務。這樣做應該爲每個用戶爲該任務創建一個新的TaskInstance。但是,這聽起來不像是會很好地擴展。假設我有五萬個用戶,創建一個新的任務需要立即創建五萬個TaskInstances。
如果某種延遲加載可以完成,那將是一件好事,但我不知道該怎麼做。我可以在登錄時做到這一點。當用戶登錄時,檢查是否創建了新的任務;如果是這樣,請僅爲該特定用戶創建一個新的TaskInstance。但是那麼在新任務創建時已經登錄的用戶呢?
我想我只是想知道這種問題的首選方法是什麼。
如果需要,可將其移至社區wiki。
如果該用戶沒有對Task執行任何操作,則他沒有TaskInstance。那麼爲什麼要創建一個前期?只有在需要保存的情況下才能創建實例。 – 2012-07-27 09:18:38
但我希望能夠向用戶展示他們已完成和未完成的任務。如果特定任務不存在TaskInstance,我將如何顯示該任務的完成狀態? – 2012-07-27 09:34:03
只要檢查用戶的TaskInstance是否已經存在 - 如果不存在,那麼用戶還不能完成它。 – klaffenboeck 2012-07-27 09:34:51