สอบถามการออกแบบฐานข้อมูลหน่อยครับ (แบบไหนดีกว่า)

เริ่มโดย sunbrightz, 25 พฤษภาคม 2020, 19:18:49

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

sunbrightz

สมมุติว่าผมต้องการเก็บข้อมูลการใช้ไฟฟ้า kwh จาก sensor แต่ละที่(location) ที่ต้องการจะส่งเข้าฐานข้อมูล mysql
วัตถุประสงค์ แสดงข้อมูลหน้าเว็บแบบ real time และมีการ plot graph จากข้อมูลที่เก็บไว้ (เป็นช่วงเวลาอะไรก็ว่าไป)

กรณีที่ 1 เก็บข้อมูลแยกเป็น datanow datalog
datanow จะถูกส่งมาจาก sensor ทุกๆ กี่วิก็ว่าไป เพื่อนำไปแสดงข้อมูลแบบ real time ส่วน datalog ครบกำหนดเวลากี่นาทีก็เก็บลง datalog แต่ละจุดๆ

Database:


Datanow: เอา kwh ไปแสดงหน้าเว็บแบบ real time (update ข้อมูลแต่ละ id ตามที่ sensor ส่งมาต่อวิ)


Datalog: เอาไว้ plot graph (insert ข้อมูลลงไปตามนาทีที่ตั้งไว้) *ไม่ต้องสน id นะครับเป็นการ copy ข้อมูลมาเฉยๆ


----------------------------------------------- กับ ----------------------------------------------------------

กรณีที่ 2 แยก location เก็บเป็น table ซะ
เก็บลง table ใคร table มัน (อาจจะให้ sensor ที่ส่งมา update แค่ id 1 เพื่อนำไปแสดงหน้าเว็บแบบ real time (กี่วิก็ว่าไป)  ข้อมูลที่เหลือเมื่อครบกี่นาทีก็เก็บลง ต่อๆไปเรื่อยๆ)

Database: แยก table ออกตาม location


Table: เก็บของใครของมันลง table ตัวเอง *ไม่ต้องสน id นะครับเป็นการ copy ข้อมูลมาเฉยๆ


สอบถามพี่ๆหน่อยครับว่าความเห็นแต่ละท่านควรจะเป็นแบบไหนจะดีหรือเหมาะกว่า (ไม่นับการทำแยก pk fk ของ location นะครับ)

*ข้อมูล location อาจจะมีเยอะ 10 หรือหลายๆที่ ที่ต้องการติด sensor

Twenty-One

ถ้า location มีจำกัดผมว่าแบบที่ 2 น่าสนใจนะครับ แต่ทั้งนี้ทั้งนั้นผมว่าต้องให้ข้อมูลเพิ่มเติมด้วยว่า plot กราฟประมาณไหน
เอาข้อมูลไป plot ยังไง น่าจะให้คำตอบได้ดีขึ้น
# บริการโฮสติ้งขั้นเทพ 24/7 เปิดให้บริการ web hosting มาแล้ว 14 ปี ลูกค้ากว่า 40,000 ราย ให้ความไว้วางใจ
# [direct=https://www.hostneverdie.com]hosting[/direct] คุณภาพสูง ดูแลระบบโดย system engineer ประสบการณ์สูง
# [direct=https://www.hostneverdie.com]host[/direct] เร็ง แรง ไม่มีล่ม ติดตั้ง cms ฟรี
# [direct=https://www.hostneverdie.com/vps-server]vps[/direct] ราคาถูก 50GB 999 บาท

[direct=https://www.hostneverdie.com][/direct]

sunbrightz

#2
อ้างถึงจาก: Twenty-One ใน 25 พฤษภาคม 2020, 19:34:08
ถ้า location มีจำกัดผมว่าแบบที่ 2 น่าสนใจนะครับ แต่ทั้งนี้ทั้งนั้นผมว่าต้องให้ข้อมูลเพิ่มเติมด้วยว่า plot กราฟประมาณไหน
เอาข้อมูลไป plot ยังไง น่าจะให้คำตอบได้ดีขึ้น

ยกตัวอย่าง plot ธรรมดาก็ได้ครับ แค่เอาข้อมูล kwh ไป plot ตามวัน เช่น อยากดู 20/5/63 ถีง 22/5/63 ก็เอาข้อมูล kwh มา plot ตึงๆๆ
ถ้าออกแบบ แบบที่ 1 คือมีข้อมูลรวมๆกัน ต้องไป query where หาข้อมูลที่ต้องการมันจะช้าไหมครับ ข้อมูลเก็บไปเรื่อยๆ อาจจะ หมื่น แสน record
ตอนนี้เลยไม่รู้ว่าแบบไหนจะเหมาะกว่ากัน บางงานอาจจะมีสัก 10 location บางงานก็อาจจะมีถึง 40 50