คำถามติดแท็ก enum

Enum (การแจงนับด้วย) คือชนิดข้อมูลที่ประกอบด้วยชุดของค่าที่ตั้งชื่อเรียกว่าองค์ประกอบสมาชิกหรือตัวนับประเภท โดยปกติชื่อตัวนับจะเป็นตัวระบุที่ทำงานเป็นค่าคงที่ในภาษาและมักจะกำหนดไว้ล่วงหน้าด้วยลำดับโดยนัย

4
การรักษา enum และตารางให้สอดคล้องกัน
ฉันกำลังสร้างโปรแกรมที่จะโพสต์ข้อมูลไปยังฐานข้อมูลและฉันได้ทำงานในรูปแบบที่ฉันแน่ใจว่าคุ้นเคย: ตารางสั้น ๆ ของค่าคงที่ที่มีแนวโน้มมากที่สุด ดังนั้นสมมติว่าตารางต่อไปนี้เรียกว่าStatus: สถานะ รหัสคำอธิบาย -------------- 0 ยังไม่ได้ประมวลผล 1 รอดำเนินการ 2 ประมวลผลแล้ว 3 ข้อผิดพลาด ในโปรแกรมของฉันฉันจำเป็นต้องกำหนดรหัสสถานะสำหรับตารางอื่นหรืออาจปรับปรุงระเบียนด้วยรหัสสถานะใหม่ ฉันสามารถ hardcode รหัสสถานะใน enum และหวังว่าจะไม่มีใครเปลี่ยนแปลงฐานข้อมูล หรือฉันจะ pre-เรียกค่าที่อยู่บนพื้นฐานของคำอธิบาย (ดังนั้น hardcoding ที่แทน) อะไรจะเป็นวิธีที่ถูกต้องในการทำให้ทั้งสอง enum และตารางซิงค์กัน
11 database  enum 

2
มันจะดีกว่าที่จะใช้สตริงหรือ int เพื่ออ้างอิง enums นอกส่วน java ของระบบ?
เรากำลังคุยกันเรื่องงานของฉันเกี่ยวกับการใช้ enums ใน Java ผู้ร่วมงานกำลังโต้เถียงว่าเมื่อใช้ enums บนฝั่งเซิร์ฟเวอร์เมื่อใดก็ตามที่ต้องการเราควรใช้สตริงเพื่ออ้างอิง (เช่นเมื่อส่งข้อมูลจาก JS ไปยังเซิร์ฟเวอร์หรือเมื่อจัดเก็บในฐานข้อมูล) ยืนยันว่านี่ชัดเจนกว่า สำหรับนักพัฒนาและยังเถียงว่ามันจะล้มเหลวอย่างรวดเร็วในกรณีที่พิมพ์ผิด ฉันมักจะใช้จำนวนเต็มเพื่อระบุ enums ในกรณีเหล่านี้เพราะมันจะเป็นตัวระบุที่ไม่เปลี่ยนรูปและจะไม่มีปัญหาเกี่ยวกับตัวพิมพ์และตัวพิมพ์เล็ก (ถึงแม้ว่า dev จะทำผิดพลาดในการใช้ค่า 2 แทน 1 เมื่อวิเคราะห์อย่างถี่ถ้วนเกี่ยวกับข้อโต้แย้งเหล่านี้ฉันจะบอกว่าการใช้สตริงนั้นดีกว่า แต่ฉันรู้สึกแปลก ๆ กับมัน (ราวกับว่ามันไม่ใช่วิธีการที่ดี) มีวิธีปฏิบัติที่ดีที่สุดเกี่ยวกับการสนทนานี้ที่สามารถแนะนำฉันได้ไหม แก้ไข: เมื่อใดก็ตามที่เป็นไปได้เราจะใช้ enum เองดังนั้นโค้ด Java ของเราจึงใช้ Enum โดย "อ้างอิงถึง enum" ฉันหมายถึง: การอ้างอิงค่าใน enum เมื่อแลกเปลี่ยนข้อมูลจาก JavaScript ไปยังเซิร์ฟเวอร์หรือจัดเก็บข้อมูลในฐานข้อมูล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.