אתה נמצא כאן מדריכים  >>  שמירת מידע בינארי ב-MySQL  >>  בסיס הנתונים

בסיס הנתונים

* המדריך נכתב באדיבותו של ירון גונן.

יפה. הגענו לחלק המעשי. לצורך הדוגמה שלנו נבנה מערכת פשוטה ביותר לשמירת קבצים בתוך בסיס נתונים. לשם כך נגדיר שתי טבלאות. אחת עבור המאפיינים של הקובץ (קרי: שמו, גודלו, סוגו ותאורו) והשניה עבור הקובץ עצמו (קרי: המידע הבינארי). ההפרדה לשתי טבלאות שונות נובעת מכך שלעיתים יש צורך לשלוף רק את מאפייני הקובץ. אם נשמור את המידע הבינארי עצמו באותה טבלה ונשלוף את כל העמודות מהטבלה, הרי לחינם שלפנו כמה מגות טובות של נתונים וזה מעמיס על הזיכרון של המחשב שלנו. סיבה נוספת להפרדה היא הצורך לטפל בקבצים גדולים במיוחד.

השיטה לאיחסון קבצים שאפרט במסמך זה טובה לקבצים עד גודל 1 מגה בלבד. ההפרדה לשתי טבלאות תעשה לנו חיים הרבה יותר קלים אם נרצה בעתיד לשמור קבצים גדולים יותר.

את הטבלה הראשונה נגדיר כך:

CREATE TABLE file (
   id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
   description CHAR(50),
   filename CHAR(50),
   filesize CHAR(50),
   filetype CHAR(50)
);

שימו לב לשדה filetype, שכן הוא זקוק להסבר נוסף. כמו שציינתי קודם לכן קובץ הוא בסך הכול רצף של מידע בינארי, אז כיצד המחשב יודע כיצד להתייחס אל הקובץ? האם זו תמונה או אולי קובץ מוזיקה? במערכת ההפעלה חלונות (Windows) סוג הקובץ מצוין על ידי שלוש האותיות האחרונות של הקובץ (מה שקרוי "הסיומת של הקובץ") למשל .exe או .gif בעולם האינטרנט סוג המידע מצוין על ידי כותרת שמכונה בשפה המקצועית Header. אינך צריך לדעת כיצד זה פועל כיוון שבדוגמה שבמדריך זה הכותרת נגזרת אוטומטית בשלב ההכנסה של הקובץ, אך אם אתה מחפש מידע נוסף בנושא זה אתה מוזמן להסתכל על ההגדרה הרשמית של MIME Type.

ואת הטבלה השנייה נגדיר כך:

CREATE TABLE filedata (
   id INT(4) NOT NULL PRIMARY KEY,
   bin_data LONGBLOB
);


תגובות בנושא


לדף הקודםשמירת קבצים -הקודם
לתחילת הדףלתחילת הדף
הבא- הכנסת קבצים לבסיס הנתוניםלדף הבא