Thaiadmin

สอบถามเกี่ยวกับการออกแบบ database

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ wisitb

  • **
  • 104
  • 0
สอบถามเกี่ยวกับการออกแบบ database
« เมื่อ: 6 มีนาคม 2015, 10:43:43 »
คือ ผม import จาก excel เข้า sql server ส่วน excel แต่ละไฟล์จะมี column ที่เหมือนกันทุกอย่าง แต่ละไฟล์จะแยกตามวันที่ ผมเลย import 1ไฟล์ต่อ 1 table ครับ มีหลายร้อยไฟล์ ซึ่งการ query ก็สะดวกดี แต่ปัญหาที่กำลังมองคือ มันมีหลายร้อย table และอนาคตคงมีเป็นพัน table ผมเลยต้องเลือก

ระหว่าง มีหลายๆ table กับ มี table เดียว อันไหนน่าจะดีกว่ากันครับ  ทั้งเรื่องการ query และ ความเร็ว

ถ้าจะทำเป็น table เดียวใน database แล้วมันจะดีไหม query เพื่อสร้างความสำพันธ์ตามวันที่อย่างไร เพราะ ถ้าแยากวันตาม table ผมก็ใช้ inner join ครับ

รบกวนช่วยแนะนำด้วยนะครับ ขอบคุณครับ

ออฟไลน์ lusifer

  • *****
  • 2,987
  • 11
  • เพศ: ชาย
  • Create new planet
Re: สอบถามเกี่ยวกับการออกแบบ database
« ตอบกลับ #1 เมื่อ: 6 มีนาคม 2015, 11:21:19 »
ลองกลั้บคืนสู่สามัญ วาด ER-Diagram ทั้งระบบก่อน แล้ว ทำ RDBMS แล้วจึงจะเอาข้อมูลทั้งหมดใส่ Database ครับ
<b>กลุ่มผู้ดูแลระบบแห่งประเทศไทย ขอระงับการใช้ลายเซ็นต์รูปภาพ
อนุญาตให้ใช้ได้เพียง ลายเซ็นต์ที่เป็นข้อความ
จึงประกาศมาเพื่อขอความร่วมมือ จากสมาชิกทุกๆ ท่าน
ในนาม กลุ่มผู้ดูแลระบบแห่งประเทศไทย</b>

ออฟไลน์ amorn_au

  • *
  • 10
  • 0
Re: สอบถามเกี่ยวกับการออกแบบ database
« ตอบกลับ #2 เมื่อ: 6 มีนาคม 2015, 15:14:00 »
ผมว่าน่าจะเขียนโปรแกรมเล็กๆ เพื่อใช้ import ข้อมูลจาก excel น่าจะดีกว่านะครับ  column ก็ primary key,column name ตามดาต้าจาก excel เลยครับ
กลุ่มผู้ดูแลระบบแห่งประเทศไทย ขอระงับการใช้ลายเซ็นต์รูปภาพ
อนุญาตให้ใช้ได้เพียง ลายเซ็นต์ที่เป็นข้อความ
จึงประกาศมาเพื่อขอความร่วมมือ จากสมาชิกทุกๆ ท่าน
ในนาม กลุ่มผู้ดูแลระบบแห่งประเทศไทย

ออฟไลน์ wisitb

  • **
  • 104
  • 0
Re: สอบถามเกี่ยวกับการออกแบบ database
« ตอบกลับ #3 เมื่อ: 6 มีนาคม 2015, 23:29:16 »
คือว่าตอนนี้ import ได้แล้วครับ แต่ปัญหาคือ ผม import table ตามวันที่ ทำให้มีหลาย table เช่น ถ้าผม import 1000 วัน ก็มี 1000 table ซึ่งผมคิดว่ามันไม่เวิร์ค แต่ถ้าทำเป็นตารางเดียวผมก็อ้าง ฟิลวันที่ฟิลopen เทียบกับ ฟิลวันที่ฟิลopen ไม่ได้  เช่น มี 2 ตารางคือ
20150305(product,date,open,close) 20150304(product,date,open,close)

ถ้าเป็นสองตารางผมจะเทียบได้ โดย query ดังนี้

select 20150305.product
from "20150305
left join '20150304"
on 20150305.product  = 20150304.product
where 20150304.open < 20150305.close and
20150304.close > 20150305.open

คือที่ผมทำแยกวันเป็นตารางเพื่่อให้เทียบว่าวันไหนมี open เทียบกันอีกวันมากกว่า แต่ถ้าจะรวมเป็น 1 ตาราง ผม query ไม่เป็นครับ ช่วยแนะนำด้วยครับ

ออฟไลน์ stwatchai

  • *****
  • 3,917
  • 4
  • เพศ: ชาย
  • System & Network Administrator
Re: สอบถามเกี่ยวกับการออกแบบ database
« ตอบกลับ #4 เมื่อ: 7 มีนาคม 2015, 09:34:24 »
น่าจะทำเป็นรายเดือนนะครับ แล้วเลือกทำ index ใน column ที่ใช้งานในการทำงานบ่อยๆครับ น่าจะช่วยได้

ออฟไลน์ teenoy

  • *****
  • 135
  • 0
  • เพศ: ชาย
  • Oracle Certify Professional, Trainer, Writer
    • Oracle Database Tutorials, news update, training course
Re: สอบถามเกี่ยวกับการออกแบบ database
« ตอบกลับ #5 เมื่อ: 7 มีนาคม 2015, 20:35:46 »
ผมว่า เอา Tool มาช่วยน่าจะสะดวกกว่านะครับ
ลองใช้ Oracle SQL Developer (โหลดฟรีจาก www.oracle.com)
เครื่องมือตัวนี้ สามารถใช้ export/import  ข้อมูลในรูปแบบไฟล์ excel,csv  ใช้กับ database ได้หลายค่าย ทั้ง Oracle , SQL Server, MySQL

ตารางทีเป็นพันตาราง ในอนาคตมึนแน่ แล้วเขียนแอพพลิเคชั่นลำบาก แทนที่จะเขียน Query ตารางเดียวแล้วใช้เงื่อนไข WHERE วันเดือนปี กลายเป็นว่าต้องหาทางให้มันรู้ว่าตอนนี้ต้องไป Query ตารางชื่ออะไรในวันเดือนปีที่ต้องการ

ออฟไลน์ insanity

  • *****
  • 1,793
  • 77
  • เพศ: ชาย
  • Life would be much easier if I had the source code
    • http://jullapol.blogspot.com
Re: สอบถามเกี่ยวกับการออกแบบ database
« ตอบกลับ #6 เมื่อ: 8 มีนาคม 2015, 21:19:59 »

select 20150305.product
from "20150305
left join '20150304"
on 20150305.product  = 20150304.product
where 20150304.open < 20150305.close and
20150304.close > 20150305.open

คือที่ผมทำแยกวันเป็นตารางเพื่่อให้เทียบว่าวันไหนมี open เทียบกันอีกวันมากกว่า แต่ถ้าจะรวมเป็น 1 ตาราง ผม query ไม่เป็นครับ ช่วยแนะนำด้วยครับ


ใช้ self join ไง น่าจะได้