คำนำหน้า ST_ เหมาะสมสำหรับฟังก์ชั่นที่ไม่รวมอยู่ใน SQL / MM ตอนที่ 3 หรือไม่?


12

ผมอ่านกระทู้ในเชิงพื้นที่ส่วนขยายสำหรับ Presto ในปัญหา Github นี้ซึ่งเป็นฟังก์ชั่นline_locate_pointได้รับการแนะนำ มันขึ้นอยู่กับST_LineLocatePointฟังก์ชั่นของ PostGIS ซึ่งจะส่งกลับทุ่นที่เป็นตัวแทนของเศษส่วนตามเส้นของจุดที่ใกล้ที่สุดในบรรทัดนั้นไปยังตำแหน่งที่กำหนด

คำถามเกิดขึ้นเพราะเหตุใดจึงตั้งชื่อline_locate_pointและไม่ST_LineLocatePointเหมือนรุ่น PostGIS การตอบสนองเป็นว่าการทำงานนี้ไม่ได้อยู่ใน SQL / MM ส่วนที่ 3 ST_มาตรฐานและดังนั้นจึงไม่ควรเริ่มต้นด้วย

การอ่านผ่านมาตรฐานอย่างรวดเร็วฉันไม่เห็นความคิดเห็นใด ๆ เกี่ยวกับวิธีจัดการกรณีที่คุณแนะนำฟังก์ชันเชิงพื้นที่ให้กับฐานข้อมูลของคุณที่ไม่ได้อยู่ในมาตรฐาน จิตวิญญาณของST_คำนำหน้าเพื่อแยกความแตกต่างของฟังก์ชั่นเชิงพื้นที่จากฟังก์ชั่นที่ไม่ใช่เชิงพื้นที่ (ดูเหมือนจะเป็นกรณีที่มี PostGIS) หรือมันคือการระบุว่าฟังก์ชั่นเป็นไปตามฟังก์ชั่นที่เทียบเท่าใน SQL / MM ตอนที่ 3?

เมื่อมองถึงสถานะปัจจุบันของ API ของ Prestoฉันต้องบอกว่าวิธีการหลังดูสะอาดน้อยลงและทำให้เกิดความสับสนว่าทำไมชื่อไม่สอดคล้องกัน แต่บางทีนี่อาจแก้ไขได้ด้วยข้อความง่ายๆที่ด้านบน

จากนั้นคำถามของฉันคือว่ามีบางส่วนของมาตรฐานที่ฉันมองเห็นหรือไม่ซึ่งอนุญาตให้ส่วนขยายเกินกว่าชุดวัตถุเชิงพื้นที่ที่กำหนดไว้หรืออีกวิธีหนึ่งหากเป็นสิ่งต้องห้ามอย่างชัดแจ้งโดยกฎบางข้อที่เป็นลายลักษณ์อักษรหรือไม่ได้เขียน .


ฉันคิดว่ามันเป็นคำถามที่ยุติธรรม แต่โดยหลักแล้วก็เป็นเรื่องของความคิดเห็น ฉันคาดหวังว่าฟังก์ชั่นทั้งหมดที่มีการเชิงพื้นที่อย่างชัดเจนคือพวกเขาทำงานบนเวกเตอร์แรสเตอร์โทโพโลยีพื้นผิว 3 มิติ ฯลฯ เพื่อใช้คำนำหน้า ST_ มันไม่เคยเกิดขึ้นกับฉันเลยที่จะถามว่านี่เป็นการใช้ที่เหมาะสมหรือไม่ขึ้นอยู่กับว่ามันอยู่ในสเป็คหรือไม่ ในขณะที่การทำงานร่วมกันเป็นสิ่งสำคัญและเป็นที่ต้องการแน่นอนฉันไม่ต้องการให้ Postgis ระงับการใช้งานฟังก์ชันเฉพาะใน SQL / MM spec และฉันคิดว่าการใช้คำนำหน้าอื่น ๆ จะทำให้เกิดความสับสนมากมาย
John Powell

ฉันไม่เข้าใจว่าทำไมคำถามของฉันจึงถูกระงับไว้เพียงเพราะ "อิงความคิดเห็น" คำถามของฉันชัดเจนเกี่ยวกับว่าเป็นไปตามความคิดเห็นหรือว่ามีมาตรฐานบางประการที่ฉันมองเห็นนั่นทำให้การตัดสินใจเป็นไปตามข้อเท็จจริง
Brideau

ขออภัยฉันเพิ่งอ่านคำถามของคุณอีกครั้งและมีคำถามที่ชัดเจนและไม่ใช่ความคิดเห็นอยู่ในนั้น 2c ของฉันคือถ้ามันเป็นอวกาศอย่างชัดเจนก็จะได้รับ ST_ โดยไม่คำนึงว่ามันจะอยู่ในมาตรฐานหรือไม่ ฉันได้เปิดการโหวตอีกครั้ง
John Powell

สำหรับความคิดของฉันมันเป็นความคิดเห็น มาตรฐาน SQL / MM ไม่สามารถปฏิเสธนักพัฒนาจากการสร้างฟังก์ชั่นของตัวเองด้วยคำนำหน้า ST_ หากพวกเขาต้องการแม้ฟังก์ชั่นที่ไม่ใช่เชิงพื้นที่ อย่างไรก็ตามนักพัฒนาซอฟต์แวร์อาจต้องการทำในวิธีอื่น ในฐานะที่เป็น SpatiaLite เปรียบเทียบมีหลายอวกาศ แต่ไม่ใช่ SQL / ฟังก์ชั่นเอ็มเอ็มที่มีคำพ้อง ST_, บางคนอื่น ๆ ที่ไม่ได้มีgaia-gis.it/gaia-sins/spatialite-sql-latest.html
user30184

SQL / MM สามารถหรือไม่สามารถบังคับให้นักพัฒนาทำอะไรได้หรือไม่ไม่ใช่คำถามที่ฉันถาม ฉันถามเกี่ยวกับสิ่งที่มาตรฐานแนะนำ มาตรฐานมีความยาว 1500 หน้าและฉันไม่ได้อ่านทุกบรรทัดดังนั้นฉันจึงขอให้ชุมชนที่นี่ - บางคนช่วยในการเขียนและมาตรฐานที่เกี่ยวข้อง - สิ่งที่แนะนำหรืออาจเป็นเพราะการตัดสินใจเหล่านี้ทำให้ อีกมาตรฐานหนึ่งหรือเลือกอย่างชัดเจนที่จะไม่พูดเรื่องนี้ นี่คือคำขอตามข้อเท็จจริง
Brideau

คำตอบ:


1

ข้อมูลจำเพาะ OpenSpatialกล่าวว่าหลายสิ่งเกี่ยวกับเรื่องนี้

เมื่อรวม SQL นี้เข้ากับ SQL / MM คำนำหน้าประเภทชื่อ " ST_" ควรใช้ตามความเหมาะสม

และ,

ชื่อคลาสใน SQL / MM มีST_คำนำหน้า "" นี่เป็นทางเลือกและการใช้งานอาจเลือกที่จะวางคำนำหน้านี้ตามที่ทำในสถานที่ต่างๆในมาตรฐานนี้

จากคณะกรรมการฉบับร่าง ISO / IEC CD13249-3 ed 5

ส่วนนี้ของ ISO / IEC 13249 ใช้ส่วนนำหน้าST_สำหรับชนิดที่ผู้ใช้กำหนดคุณลักษณะแอตทริบิวต์ที่เรียกใช้ SQL ที่เรียกประจำและชื่อมุมมอง ส่วนนี้ของ ISO / IEC 13249 ใช้ส่วนนำหน้า ' ST_Private' สำหรับชื่อของแอตทริบิวต์บางตัว การใช้ ' ST_Private' ระบุว่าแอททริบิวต์ไม่ได้มีไว้เพื่อสาธารณะ

ดังนั้นนี่คือสิ่งที่เรามี

  • SQL / MM แนะนำให้ใช้คำนำหน้า
  • SQL / MM ระบุว่าคำนำหน้าเป็นตัวเลือก
  • ISO ใช้ส่วนST_นำหน้าด้วยเช่นกัน

ฉันจะพูดแบบนี้

  • การใช้งานST_ควรถือว่าเป็นคำหลักที่ไม่สงวนไว้สำหรับผู้ใช้ปลายทาง ไม่มีเหตุผลจริงๆที่จะทำให้ฟังก์ชั่นผู้ใช้ปลายทางกับคำนำหน้านี้ STx_คุณดีกว่าเพียงแค่ใช้ เรารู้ว่าอย่างน้อยสองศพที่เผยแพร่ด้วยคำแนะนำคำนำหน้านี้ (OpenSpatial) SQL / MM และ ISO นอกจากนี้สัญลักษณ์มลพิษหลาย RDBMS ที่มีคำนำหน้าว่า

อาจมีมากกว่าประวัติศาสตร์ แต่ฉันไม่สามารถหาข้อมูลร่วมสมัยเพิ่มเติมเกี่ยวกับเรื่องนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.