X和面試隨筆
第一次參加了面試,面試官很好,我寫的筆試和回答的都很差勁,雖然技術方面的回答我想抽自己,但是人家還是要了,給了我一個機會,很感謝.
第一道題:設計一個進銷存系統的表結構設計 1:老板每天要知道賣出的貨物.2:要定期查看貨物的成本、銷售額和利潤。
錯誤:只考慮了基本構造,寫出了每一個表的列名,並沒有考慮真正的表結構設計,因為表結構設計失誤可能會產生訂單重復,數據混亂等情況,是很要命的。謝謝這次面試經歷讓我真正的思考表結構設計本身,一個錯誤的設計會導致難抓的BUG,更別提修復了。再次感謝面試官給我機會,我十分開心,這也會激勵著我繼續學習。
在此,以昨天習得的經驗,並翻閱了書籍,查閱了資料,感謝rose^Chen的《項目總結---表結構設計》的總結經驗,現對面試題進行補充;
表名:[省略comment,即註釋,引擎采用InnoDB]
ID:商品ID,使用8字節無符號的Bigint(20),主鍵要保證唯一性、非空性、有序性、可讀性、可擴展性。即:
id bigint(20) unsigned[使用bigint時它能儲存0~65535的數據範圍,最大值在18446744073709551615] not null[非空性] primary key[主鍵 唯一性] auto_increment(自增 有序性)
Goods:商品名, varchar(100) not null;[ 如需要副標題,則varchar(200),圖片地址500,相對地址. 圖片地址用 text json格式]
Cost:成本 int unsigned(產品成本不可能為負數保證了最大值在4294967295不過精確角度講建議采用decimal(20,2)保留兩位小數,因為適用於貨幣計算) not null;
sell + gain和Cost相同.gain可以用自定義函數實現 利潤=銷售額-每件商品成本;
1:老板每天要知道賣出的貨物.2:要定期查看貨物的成本、銷售額和利潤。
新建計劃執行計劃的定義.
X和面試隨筆