SQL DDL

otherside3

New member
SQL DDL

הי, צהריים טובים.
היה לנו שיעור ראשון בנושא יצירת טבלאות SQL DDL (מקווה שהניסוח שכתבתי תקין ולא המצאתי עכשיו משהו
)
ונתקלתי בשאלה קטנה שלא מצאתי לה תשובה בחומרי השיעור.
נניח לי יש טבלה ויש בה עמודה שיכולה לקבל אחד מ-2 ערכים (נניח או X או Y, שניהם מאותו סוג), ואז יש לי עמודה שניה (לידה) שהערך שהיא יכולה לקבל תלוי בערך שהתקבל בעמודה אחת לפניה (כלומר אם נכנס X אז המשתנה בעמודה הזאת יכול לקבל רק ערך של INTEGER נניח, ואם נכנס Y אז המשתנה בעמודה הזאת יכול לקבל רק ערך של CHAR נניח)
האם יש בשפה הזאת איזשהיא אופציה להתניה כזאת? (סוג של if כלשהוא..)?
אם לא באופן ישיר - אני מניח שבעידן שאנו חיים חייבת להיות *איזשהיא* דרך לבצע את הפעולה (הדי בסיסית) הזאת, איך ניתן לבצע אותה?

תודה רבה וסוף שבוע טוב,
 

Guy Yafe

New member
לא מבין גדול ב-SQL

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

הוא גורם להאטה בביצועים. אבל הוא מאפשר להכניס כל לוגיקה שבא לך ולמנוע את הכנסת הרשומה.
 

פרסאוס

New member
בSQL טבלה מקבלת רק טיפוס אחד לעמודה

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