歸納常見作法有三種.
1 單一table+公司別欄位: 簡單方便, 適用公司少, 資料不多的狀況.
2 多公司table: 公司資料拆開存放, 效率較好, 但新增公司與資料欄變更會比較麻煩些.
3 多公司資料庫: 與多公司table作法相似, 更清楚明確.
你的前提是 (幾家+小公司), 比較建議用第一種.
老實說, 我也是 SQL 肉腳啦.
至少可以土法煉鋼, 用程式來搞定.
我不習慣依賴用 SQL 語法完成複雜的功能, 這樣有個好處, 程式比較容易看的懂.
如果你的DB是同一台機器,只是Database不同,你只要在下達指令時,同時指定db_name.table_name 即可,例如:Select A.*,B.* From DB_A.Table_Name A,DB_B.Table_Name Where ........。當然,前提是你使用的資料庫連接身份,必須同時擁有 DB_A 和 DB_B的權限。 希望對你有幫助~
謝謝 原來最簡單的用法就在原來的語法裡
我本來就擁有所有資料庫的權限的 因為在同一台機器裡
所以我可以將每家的資料庫都分不同database來存放
便於各家自行設定
但在做老闆要的統計時 用此語法取出需要的數據出來合計即可
老闆想看到即時的全部業績統計
用 union 敘述 可以結合多個 table 的結果輸出
就 coding 角度而言,全部放一起會比較好維護
如果是我的作法會用一個table,加個[公司別]的欄位,
根據登入者的公司別紀錄在欄位上,個別登入者只能查
該公司別的紀錄。至於老闆要統計,就把公司別的欄位忽略,
甚至可以根據公司別作統計,都很方便。
聽起來有點像要用同一套程式跑在不同的位址的感覺
有些程式會用 prefix table name 就是在每個 table 之前加一個字串
當然,這樣子的話,你的情況統計就得合併 table 來處理了