Laravel chèn số lượng lớn nhận id

Bạn sẽ làm gì khi bảng của chúng tôi mong đợi id nhưng tất cả những gì chúng tôi có là các chuỗi? . Chúng tôi lưu trữ mọi món trong thực đơn và thành phần của nó vào cơ sở dữ liệu của mình để có thể theo dõi tất cả các loại thống kê; . g

Chúng tôi muốn lưu trữ một công thức mới vào bảng công thức nhưng có một vấn đề. bảng này yêu cầu một component_id chứ không phải component_name mà chúng tôi hiện có. Làm cách nào chúng tôi có thể chèn các ID này vào bảng công thức nấu ăn trong khi chúng tôi chỉ có tên?

Bài viết này tập trung vào việc lưu trữ các công thức và nguyên liệu đó theo cách thông minh nhất có thể bằng cách sử dụng bảng nguyên liệu độc đáo. Sau khi đọc bài viết này, bạn sẽ

  • hiểu bảng duy nhất
  • hiểu cách sử dụng bảng QUA
  • chỉ có thể chèn các giá trị duy nhất vào bảng duy nhất
  • có thể chèn vào bảng trong khi truy xuất id từ bảng duy nhất

Đầu tiên, chúng tôi sẽ thiết lập một số bảng và sau đó chúng tôi sẽ truy vấn

Thành lập

Trong phần này, chúng tôi sẽ xác định cấu trúc cơ sở dữ liệu của chúng tôi và tạo tất cả các bảng của chúng tôi. Sau đó, chúng tôi sẽ chèn một số dữ liệu thử nghiệm vào đó. Sau phần này, chúng ta sẽ tìm hiểu cách chèn với id đã tham gia. Lưu ý rằng bài viết này sử dụng Postgres nhưng các kỹ thuật tương tự áp dụng cho tất cả các cơ sở dữ liệu quan hệ

Cấu trúc cơ sở dữ liệu

Chúng tôi sẽ xác định 3 bảng. một bảng chứa nguyên liệu, một bảng chứa công thức nấu ăn và bảng thứ ba kết nối hai bảng với nhau

Cấu trúc cơ sở dữ liệu của nhà hàng chúng tôi [hình ảnh của tác giả]

bảng thành phần

Trước tiên, chúng tôi sẽ tạo bảng thành phần và chèn một số dữ liệu. Tham khảo bài viết này để biết truy vấn chỉ chèn được nguyên liệu chưa có trong bảng, đảm bảo không bao giờ bị lỗi. Đối với ví dụ này, chúng tôi sẽ sử dụng phần chèn "bình thường" bên dưới

Vì vậy, bảng của chúng tôi trông như thế này

Các thành phần mới được thêm vào của chúng tôi

Bảng công thức nấu ăn

Bảng này sẽ lưu trữ các công thức nấu ăn có id và tên duy nhất

Bảng công thức nấu ăn của chúng tôi

Bảng thành phần công thức

Bảng này kết nối một hoặc nhiều công thức nấu ăn với một hoặc nhiều thành phần. Loại bảng này được gọi là 'thông qua bảng'; . Một công thức có thể có nhiều thành phần và một thành phần có thể là một phần của nhiều công thức

Chúng tôi sẽ kết nối chúng với nhau bằng công thức_id và thành phần_id

T

Tất cả các bảng của chúng tôi hiện đã được tạo, hãy bắt đầu chèn

Bàn của chúng tôi đã được chuẩn bị, hãy bắt đầu nấu ăn. [hình ảnh của Maarten van den Heuvel trên Pexels]Chèn vào bảng thành phần công thức của chúng tôi

Hãy bắt tay vào giải quyết vấn đề. Chúng tôi muốn tạo một số bản ghi kết nối một bản ghi trong bảng công thức với một số bản ghi trong bảng thành phần. Chúng tôi cần công thức_id và một số thành phần_id cho việc này. Vấn đề là chúng tôi không có thành phần_id, chỉ có tên thành phần. Làm cách nào chúng ta có thể chèn vào bảng công thức_thành phần? . Truy vấn dưới đây giải quyết vấn đề này

Hãy xem và đi qua truy vấn

  • Dòng 1 đến 8; . Chúng tôi biết tên của thành phần và số lượng
  • Ở dòng 9, chúng tôi nói rằng chúng tôi muốn chèn công thức_id, thành phần_id và số lượng vào bảng công thức_thành phần. Đây là mục tiêu của chúng tôi
  • Trong dữ liệu CHỌN từ các giá trị đầu vào của chúng tôi [dòng 1 đến 8] mà chúng tôi xác định là d. Chúng tôi tham gia tập dữ liệu này trên bảng thành phần, khớp với tên thành phần
  • Đây là nơi phép màu xảy ra. như bạn có thể thấy, chúng tôi chọn giá trị 1 cho công thức_id, id từ bảng thành phần đã tham gia và số lượng từ tập dữ liệu đầu vào

Tính đến công thức_id

Mẹo nhỏ là xác định dữ liệu đầu vào của chúng tôi dưới dạng tập dữ liệu, nối dữ liệu đó với các bảng được yêu cầu và sau đó chỉ chèn id. Khá dễ dàng phải không?

Chúng tôi thực hiện thủ thuật từ truy vấn trước đó hai lần. chúng tôi tham gia công thức từ các giá trị đầu vào trên cột công thức trong bảng công thức. Sau đó, chúng tôi trích xuất id công thức từ bảng đó và chèn nó vào công thức_ingredients. Kiểm tra kết quả dưới đây

Chúng tôi đã chèn thành phần_id tương ứng với đúng công thức_id. Hoàn hảo

Sự kết luận

Trong bài viết này, chúng tôi đã trải qua một số kỹ thuật khá gọn gàng. một bảng ĐỘC ĐÁO, một bảng QUA và chèn các giá trị đã nối. Tôi hy vọng đã làm sáng tỏ chúng. Nếu bạn có góp ý/làm rõ xin vui lòng bình luận để tôi có thể cải thiện bài viết này. Trong thời gian chờ đợi, hãy xem các bài viết khác của tôi về tất cả các loại chủ đề liên quan đến lập trình như thế này

try{ foreach [$js->RECORDS as $rec] { $data = [ 'title'=>$rec->title, 'description'=>$rec->description, 'url'=>$rec->url . updateOrCreate[['url' => $rec->url], $data];

Chủ Đề