Branch Testing === # Flowchart link: https://mermaid-js.github.io/ graph TD A[Vào sản phẩm A] -->|internal hay không|B{Có?} B --> |Tồn tại|C1[Có user_id trong USER] B --> |Tồn tại|C2[Ko Có user_id trong USER] B --> |Ko Tồn tại|B1[Có user_id trong customer] B --> |Ko Tồn tại|B2[Ko Có user_id trong customer] C1 --> D1[Hiện thôi] C2 --> D2[Dùng đỡ user_id trong customer] D2 --> D3[Không có thì ko hiện thôi] B1 --> E1[Hiện thôi] # Example ### Đặc tả 1 Sản phẩm => customer / user -- internal / external user => customer => ko hiện ### Đặc tả 2 nếu như internal đã phụ thuộc vào user => ko có user => ko hiện nếu như external đã phụ thuộc vào customer => ko có custoemr => ko hiện ### Đặt vấn đề Case nào customer - internal ? Case 1: customer trùng với user_id => xài 1 client customer để tạo sản phẩm => Chỗ này đã biết trùng rồi mà lại lưu internal ? Case 2: user bị xóa => khách hàng sử dụng sản phẩm từ trước rồi => sinh ra case user_id null và sản phẩm lại có customer từ trước => vì sao lại xóa user mà remove lun cái field đó ở sản phẩm ? => handle user bị xóa ### Review if else for while đặc tên biến ngu khai báo ngu && || Logic