之前關於 ERP物料編碼
承蒙大家熱烈討論.
現在想與大家接著探討:ERP 物料編碼,適合用來當主鍵或是外鍵嗎??
albertachen提到:
經蟲弄衝建色忘義
albertachen提到:
哪有人用 [物料編號]直接當 PK/FK
iT邦幫忙MVPsimon581923提到:
在地球, 除了阿伯以外, 大家都拿[物料編號]當 主鍵/外鍵
dream提到:
小雨大最佳解答選錯人囉。
albertachen提到:
又來一位高手
繞著圈獎圖講著同樣一件事
並且將 [扭轉] 編號的 Super Man 歌頌一番
真是高手中的高高手
summertw提到:
國會大堂與立委諸公
summertw提到:
把技術本事拿出來與大伙交換意見
summertw提到:
哪一個是妳??
看了大家的發表後,我想跟大家來短暫的交換一下意見..
在此,我想,除了【賽大】有說到重點外,其餘的都在執著於該索引鍵是否【應該】存在,這是一個奇怪的對話。
索引鍵的使用,要看資料量及評估伺服器效能方面去考量起,一般主索引鍵的使用,系統都會同時提供叢集的功能(use Primary Key),這種主索引在少量資料時,反而會造成系統的負擔,因此在使用索引鍵時,要使用Primary Key或是Unique Key,對於效能的考量也是一個DBO人員應考量的因素。
以樓主的問題來講好了,ERP的物料管理中的【料號】欄位是否應使用主索引鍵的問題,應考量的因素有下列幾項..
1.人為使用因素是否常改變【料號】<=規劃不周造成的問題。
2.稅報對各式報表在歷年中同一品項不同【料號】的表現,稅務單位是否接受解釋。
3.資料庫伺服器在使用Foreign Key後,其效能的評估。
以上三個簡要的問題,二個是人因,一個是系統因素。
如果是我,我會規劃產品【料號】為一個【Unique Key】但是不設任何【Foreign Key】給它(原因我不多著墨,各位看倌自己想),但在品名資料表中,多設一個【序號】欄位,設定成【Primary Key】,並指定給其他有關聯到這個品名表的資料表【Foreign Key】,但因【序號】欄位是電腦看的,操作人員看不到,所以指定【Foreign Key】可大瞻的指定主鍵不可修改及不可移除,如此一來,不管資料量再怎麼大,在效能上也不會受到太多的影響,而不管【料號】欄位怎麼改,也不會影響其他表的關聯及顯示。
如此規劃,就可把前面的三項因素中的前二項,丟回去給財會計門,由他們去解決,資料庫則可以不變應萬變…這就是我所說的只有【賽大】有說到重點的原因了…
你如果是問說物料的編號是否適合用來做資料表的主鍵的話~~~
當然可以,例如你要查物品的相關資料、採購歷史、出貨歷史等等很多機會都是用品號作搜尋的,因為品號是唯一值,如果你的品號會出現一個品號有二個以上的物品的話,那你的編碼方式就有問題~~
當然除了有一些"通用雜項"之類的例外
通常,如果你要拿來當主鍵,孩子,在編物料編碼原則時,就應該把這件事考慮下去
所以,不是在事後問能不能,而是在事前就要規劃
如果,你要問的是,目前要導新的ERP系統,但物料編碼要沿用之前的,而新的ERP系統會不會、能不能拿你的物料編碼來當主鍵,那,請去問你的ERP廠商,因為索引表的規則是他們寫的,要問他們能不能,而不是問我們
這樣懂了嗎,孩子?
hitomitanaka提到:
小妹,這些東西上個世紀時都已經玩得很熟啦(恕刪)
我倒不知道上個世紀有ERP
恕小妹無知
可以請H大分享一下自己的經驗嗎?
aenbishyar提到:
上個世紀有ERP
嚴格來說, 從荷屬東印度公司開始, 就有ERP的雛型了, 只是那時都是人工作帳而已.
唉~~
現在距上個世紀也才過13年八個月又22天而已...
是不是大家日子太好過了....所以以為上個世紀是個久遠的故事啊...
...
據說(正史中有這麼一筆,拜官野史中是這麼寫啦)...蘇東坡他娘是個商業高手(所以家財萬貫),跟據她的營運手法,是不是也可以算是MRP、ERP的原始雛型呢??
...
以上除了【蘇東坡他娘是個商業高手】為史實外,其餘純屬瞎掰.....大家看看就好...
國外黑骨雞軟體,物料編號不是資料表的主鍵,很神奇吧,第一次學時,也很驚呀!
國外黑骨雞軟體,物料編號不是資料表的主鍵
哈哈有人幫 Oracle 開口了
SAP 谁來幫他開口說兩句
iDempiere/Adempiere 谁來幫他開口說兩句
物料編碼& 主鍵是什麼鬼阿,我怎麼都聽不懂阿XD~
現在7月時我看這篇留言應該還會有更多鬼東西出現歐^^
wilson1966提到:
國外黑骨雞軟體,物料編號不是資料表的主鍵
請再回去學習...就會知道為什麼INVENTORY_ITEM_ID和ORGANIZATION_ID是主鍵了...
因為INVENTORY_ITEM_ID+ORGANIZATION_ID是系統在看的物料編碼, 而FLEXFIELD中的是給人看的物料編碼.
不要以偏概全, 是我們資深IT人員必須要能做到的一件事.
感謝大大指教::
大家都說很對
應該是說同一件事
mtlb.inventory_item_id, --mtl_system_items_b 物料內碼
mtlb.segment1 "item code", --mtl_system_items_b 物料編號
mtlb.description item_desc,
organization_name orgn, --org_organization_definitions 事業名稱
mmt.subinventory_code subinventory, -- mtl_material_transactions 倉庫
mtlb.primary_uom_code transaction_uom,
.................
AND EXISTS
(SELECT 1
FROM org_organization_definitions ood
WHERE ood.organization_id =org.organization_id
AND ood.organization_code = NVL (:p_orgn, ood.organization_code))
大部分都是 [內碼] 串接 ( PK/FK )
organization_code 組織編號
segment1 物料編號
很少拿來當 ( PK/FK )