這是一個出來的新問題this question這些應該是3個SQL表還是一個?
由於答案,問題的性質改變了,所以我認爲發佈一個新的是好的(?)。
您可以在下面看到我的原始數據庫設計。我有3個表,現在我需要一個查詢來獲取run_balances計算的特定用戶的所有記錄。
- 交易是在用戶之間,像互信。所以單位在用戶之間交換。
- 發明是物理的東西帶進系統;一個用戶得到這個單位。
- 消費是物質消費;用戶必須爲此支付單位。
|--------------------------------------------------------------------------| | type | transactions | inventarizations | consumations | |--------------------------------------------------------------------------| | columns | date | date | date | | | creditor(FK user) | creditor(FK user) | | | | debitor(FK user) | | debitor(FK user) | | | service(FK service)| | | | | | asset(FK asset) | asset(FK asset) | | | amount | amount | amount | | | | | price | |--------------------------------------------------------------------------|
(注意「量」是在不同的單元;這些是條目和計算上的那些量外製成的範圍來解釋爲什麼,但這些是字段。)。
問題是:「可以/應該在一張桌子還是多張桌子上(就像我現在有的那樣)?」我喜歡3表格解決方案,因爲它在語義上更有意義。但是,我需要這樣一個複雜的select語句(可能會有負面的性能結果),用於running_balances。在上面的鏈接中的原始問題要求這個聲明,在這裏我問是否數據庫設計是適當的(道歉四張雙重張貼,希望它沒事)。
Walter,您瞭解問題的真正核心 - > +1。就我而言,它更復雜,但本質上你已經掌握了它。簡而言之:我不能使用單列方法。我將這樣做:嘗試不同的解決方案,並看到最佳效果;可能在最終的易用性和性能之間會有一些折衷。 – faboolous