วิธีใช้ JDL เพื่อจำลองข้อมูลสำหรับฐานข้อมูล NoSQL

เผยแพร่แล้ว: 2022-11-23

JDL เป็นภาษาที่มีประสิทธิภาพสำหรับการสร้างแบบจำลองข้อมูลและความสัมพันธ์ ในบทความนี้ เราจะแสดงวิธีใช้ JDL เพื่อจำลองข้อมูลสำหรับฐานข้อมูล NoSQL ก่อนอื่นเราจะสร้างแบบจำลองข้อมูลอย่างง่ายโดยใช้ JDL จากนั้นเราจะแสดงวิธีใช้ JDL เพื่อสร้างรหัส SQL ที่จำเป็นในการสร้างฐานข้อมูล

ไฟล์ Jdl คืออะไร?

ไฟล์ JDL เป็นไฟล์ที่ใช้โดย Job Description Language (JDL) ซึ่งเป็นเครื่องมือที่ใช้ในการสร้างและจัดการงานในสภาพแวดล้อม High Performance Computing (HPC) ไฟล์ JDL มีคำแนะนำที่อธิบายถึงวิธีการรันงาน รวมถึงทรัพยากรที่จำเป็น ซอฟต์แวร์ที่จะใช้ และไฟล์อินพุตและเอาต์พุต

เหตุใด Jhipster จึงเป็นเครื่องมือที่ดีที่สุดสำหรับการสร้างเว็บแอปพลิเคชันสมัยใหม่

เมื่อใช้ JHipster คุณสามารถสร้าง เว็บแอปพลิเคชัน และไมโครเซอร์วิสสมัยใหม่ได้อย่างรวดเร็วโดยใช้ Angular หรือ React (JavaScript) และ Spring Framework สามารถใช้กับแพลตฟอร์มที่หลากหลายและเป็นทั้งแบบฟรีและแบบโอเพ่นซอร์ส

คุณสร้างความสัมพันธ์แบบกลุ่มต่อกลุ่มใน Jhipster ได้อย่างไร?

ที่มารูปภาพ: githubusercontent

ใน JHipster ความสัมพันธ์แบบกลุ่มต่อกลุ่มสามารถสร้างได้โดยการเพิ่มเอนทิตีที่สองในความสัมพันธ์ที่มีอยู่ ตัวอย่างเช่น หากคุณมีความสัมพันธ์ระหว่างผู้ใช้และผลิตภัณฑ์ คุณสามารถเพิ่มความสัมพันธ์ที่สองระหว่างผู้ใช้และคำสั่งซื้อได้ สิ่งนี้จะสร้างความสัมพันธ์แบบกลุ่มต่อกลุ่มระหว่างผู้ใช้และคำสั่งซื้อ และคุณจะสามารถเพิ่มข้อมูลให้กับเอนทิตีทั้งสองได้

เมื่อเร็ว ๆ นี้ ฉันกลายเป็นแฟนตัวยงของ JHipster ซึ่งเป็นแพลตฟอร์มออนไลน์สำหรับการพัฒนาแอปพลิเคชัน Spring Boot และ Angular Web ในตอนแรก เป็นเรื่องยากสำหรับฉันที่จะใช้อินเทอร์เฟซรายละเอียดหลักที่แท้จริง เนื่องจากอินเทอร์เฟซที่สร้างขึ้นนั้นขาดคุณสมบัติดังกล่าว หน้าเดียวสามารถเติมเต็มความสัมพันธ์ระหว่างเจ้าของและสัตว์เลี้ยงได้โดยไม่ต้องใช้ความพยายามมากนัก JHipster จำเป็นต้องสร้างเอนทิตีฐานข้อมูล เจ้าของและวัตถุสัตว์เลี้ยงที่เป็นเรื่องของความสัมพันธ์รายละเอียดหลักของเราคือเอนทิตีในฐานข้อมูล สามารถสร้างเอนทิตีได้ด้วยวิธีการที่หลากหลาย และมักมีการจัดทำเป็นเอกสาร สามารถดาวน์โหลดไฟล์ JDL ได้จากโปรแกรม JDL-STUDIO (หรือสร้างจากระบบไฟล์ในเครื่อง) หรือดำเนินการจากบรรทัดคำสั่งผ่านคำสั่งเอนทิตี Jhipster

JHipster ใช้ Spring Boot เป็นแบ็กเอนด์ ซึ่งสร้าง ที่เก็บ JPA โดยอัตโนมัติสำหรับการสื่อสารกับแหล่งข้อมูลของเรา และสร้างที่เก็บสำหรับสร้าง REST API ของเรา เราต้องทำการเปลี่ยนแปลงเล็กน้อยกับความสัมพันธ์ของรายละเอียดหลักของเราเพื่อให้มันใช้งานได้ ในไดเร็กทอรี src/main/java//web.rest มีเมธอดชื่อ PetResource ในบรรทัดต่อไปนี้ เราเพิ่มสิ่งต่อไปนี้: จุดสิ้นสุด เราส่งผ่านตัวแปร Path ชื่อ ownerid ซึ่งเป็นส่วนหนึ่งของเมธอด findByOwnerId ซึ่งเรียกอีกอย่างว่าตัวแปร Path ตอนนี้เราสามารถใช้วิธีนี้เพื่ออัปเดตอินเทอร์เฟซในขณะที่เราทำการเปลี่ยนแปลงในส่วนหน้า หากคุณใช้ Gulp การเปลี่ยนแปลงจะมองเห็นได้ในวินาทีที่คุณบันทึกการเปลี่ยนแปลงนั้นไปที่ Owner-detail.html

ความสัมพันธ์ของรายละเอียดหลักจะถูกตั้งค่าสำหรับบทช่วยสอนนี้เท่านั้น หากมีการระบุชื่อเอนทิตีของเจ้าของ รหัสบริการประกอบด้วยตรรกะสำหรับการสอบถามแบ็กเอนด์เพื่อสอบถามสัตว์เลี้ยง อย่างที่คุณเห็น เราต้องการเรียกรหัสจากตัวควบคุมเมื่อแก้ไขมุมมองรายละเอียดเจ้าของใน UI JHipster ช่วยให้คุณพัฒนาแอพได้อย่างรวดเร็ว ฉันแค่คุ้นเคยกับทุกอย่างเกี่ยวกับมัน ช่วยให้ฉันประหยัดเวลาได้มากในการตั้งค่าและกำหนดค่า เจ้าของในตัวอย่างนี้คือ Andrew และ Bob เจ้าของแต่ละคนจะได้รับไอเท็มสัตว์เลี้ยงด้วย

Jhipster: เครื่องมือ Uml สำหรับการพัฒนาซอฟต์แวร์

หากคุณต้องการสร้างเอนทิตีและความสัมพันธ์จำนวนมาก คุณอาจต้องการใช้เครื่องมือกราฟิก ผู้ที่เลือกที่จะทำเช่นนั้นมีสามตัวเลือก: JDL Studio ซึ่งเป็นเครื่องมือออนไลน์ของเราสำหรับสร้างเอนทิตีและความสัมพันธ์กับภาษาเฉพาะโดเมน; Umbraco เว็บแอปพลิเคชัน ที่เราสร้างขึ้นเอง ; และ Unimagix แอปพลิเคชันที่เราสร้างขึ้นเอง #jajdl หากคุณไม่ต้องการสร้างเอนทิตีของคุณใหม่ในขณะที่นำเข้า JDL ให้ใช้แฟล็ก –json-only เพื่อข้ามการสร้างเอนทิตีและสร้างเฉพาะไฟล์ json ใน JDL ของคุณ Jhipster เป็นเครื่องมือ UML สมัยใหม่ที่ทำให้การสร้าง จัดการ และแชร์ไดอะแกรมเป็นเรื่องง่าย ด้วยโปรแกรมนี้ คุณจะสามารถสร้างซอฟต์แวร์ จัดการโครงการ และออกแบบระบบได้

Jdl Java

Java Data Layer (JDL) เป็นเครื่องมือที่ช่วยให้นักพัฒนาสร้าง โมเดลเอนทิตี JPA 2.0 ที่สมบูรณ์จากสคีมาฐานข้อมูล JDL Studio เป็นเครื่องมือบนเว็บที่ช่วยให้สร้างและแก้ไขไฟล์ JDL ได้ง่าย

วิธีใช้ Jdl เพื่อสร้างเอนทิตี Jhipster

อะไรคือความแตกต่างระหว่าง JDL และ JDL? JDL ถูกกำหนดในภาษาโดเมนเฉพาะ เช่น JHipster และถูกกำหนดไว้ในไฟล์เดียว (หรือหลายไฟล์ขึ้นอยู่กับเวอร์ชัน) ด้วยไวยากรณ์ที่ใช้งานง่าย ทำไมฉันถึงใช้ Jhipster JHipster มีเครื่องมือที่จำเป็นสำหรับคุณในการอัปเดต จัดการ และจัดแพคเกจแอปพลิเคชันเมื่อสร้างขึ้น เมื่อคุณเรียกใช้แพ็คเกจ mvn -Pprod บิลด์ Maven จะถูกสร้างขึ้นซึ่งใช้ปลั๊กอิน Spring Boot Maven เพื่อสร้างไฟล์เรียกทำงาน นอกจากนี้ยังมีไฟล์สงครามและไฟล์เสียงฮึดฮัดหรืออึก เพื่อทดสอบ เพิ่มประสิทธิภาพ และย่อโค้ด JavaScript, HTML และ CSS ฉันจะสร้างเอนทิตีบน jam.spot ได้อย่างไร หากต้องการสร้างเอนทิตีจากไฟล์ JDL ให้ใช้ไฟล์ Jhipster jdl your-jdl เป็นฐานสำหรับตัวสร้าง jdl ตรงกันข้ามกับการอิมพอร์ต JDL เมื่อคุณไม่ต้องการสร้างเอนทิตีของคุณใหม่ คุณสามารถข้ามการสร้างเอนทิตีและใช้แฟล็ก –JSON เพื่อสร้างไฟล์ only.json โฟลเดอร์ชื่อ “Jeezyster” เป็นหนึ่งในโฟลเดอร์ย่อย

Jdl-สตูดิโอ

jdl-studio เป็นสตูดิโอออกแบบเว็บและกราฟิกที่ตั้งอยู่ในลอสแอนเจลิส แคลิฟอร์เนีย สตูดิโอก่อตั้งขึ้นในปี 2549 โดย Justin และ Danielle Levitt ซึ่งพบกันระหว่างเรียนการออกแบบที่ Art Center College of Design
งานของ jdl-studio โดดเด่นด้วยการออกแบบที่สะอาดตา ทันสมัย ​​ใส่ใจในรายละเอียด และให้ความสำคัญกับการส่งมอบผลลัพธ์ที่ตรงตามความต้องการและวัตถุประสงค์ของลูกค้า ผลงานของพวกเขาได้รับการนำเสนอในสิ่งพิมพ์เช่น Communication Arts, How และ Print และพวกเขาได้รับรางวัลจาก AIGA, Type Director Club และ Society for News Design

JDL-STUDIO ซึ่งเป็นเครื่องมือออนไลน์ฟรี ช่วยให้คุณวาดไดอะแกรม UML โดยใช้ ไวยากรณ์ JDL เพื่อให้ไวยากรณ์ของมันใกล้เคียงกับไดอะแกรม UML ที่สร้างขึ้น จึงไม่มีการใช้รูปวาด ASCII สามารถดูภาพ Docker ได้ที่ https://hub คุณสามารถเปิด jhipster ได้จากไดเร็กทอรี Docker.com/r/jhipster/jdl-studio/project แอปสามารถทำงานในโหมดการพัฒนา URL สามารถเข้าถึงได้ในเบราว์เซอร์โดยเลือก http://localhost:3000 บิลด์นี้รวมอยู่ในโหมดการผลิตอย่างเหมาะสมและปรับให้เหมาะสมเพื่อประสิทธิภาพสูงสุด มีการสร้างย่อขนาดที่มีแฮชนอกเหนือไปจากไฟล์ ดูข้อมูลเพิ่มเติมได้ในส่วนการปรับใช้

วิธีสร้างคลาสไดอะแกรมสำหรับ Hello, World! แอปพลิเคชัน

ตัวอย่างต่อไปนี้ของไฟล์ JDL สร้างไดอะแกรมคลาสสำหรับ Hello, World!
//* //* //* * //* //* //* //* //* //* //* //* //* //* //* //* //* / /* //* //* //* //* //* //* //* //* //* //* //* //