Tôi sẽ đề xuất các bảng sau:
a) Công thức - tên, mô tả, người dùng và thông tin khác
b) Thành phần - tên, mô tả, từ cửa hàng (có hoặc không giá trị nếu mua từ cửa hàng), người nhận (id của công thức cho thành phần này). Điều này cho phép các thành phần có đối ứng
c) người nhận - người nhận - người nhận, người nhận thành phần (về cơ bản điều này liên quan đến công thức nấu ăn với các thành phần của nó)
Lời khuyên là chính xác, vì bạn có thể kết thúc bằng các thành phần dạng vòng tròn cho người nhận, v.v.
CẬP NHẬT:Tôi khuyên bạn nên thêm một cột isingridient vào công thức để chỉ những công thức đã biết là thành phần mới có thể được chọn để thêm vào bảng Thành phần. Điều này có thể giúp giảm cơ hội tham chiếu vòng tròn