---
# System prepended metadata

title: Branch Testing

---

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