ל firebird sql יש תכונה שאני לפחות, לא מכיר באף מסד נתונים קוד פתוח וזה יצירת שדות computed by.
שדה שהוא computed by הוא שדה שהוא read only ובעצם מחבר תוכן משדות אחרים בטבלה ו כן כל תוכן אחר או נוסף שנרצה לספק לו.
הגדרת שדה כזה פותרת לנו הרבה קוד בשאילתות select למשל.
דוגמה להגדרת טבלאות עם שדה computed by:
קוד: |
create table use_computed_by (
id integer primary key not null,
Title varchar(10) not null default '',
First_Name varchar(50) not null,
Middle_Name varchar(50) default '',
Last_Name varchar(50) default '',
Full_Name Computed By (First_Name || ' ' || Middle_Name || ' ' || Last_Name),
Name_With_Title Computed By (Title || ' ' || Last_Name)
); |
עכשיו כאשר נזין את הערכים הבאים:
קוד: |
Title: Dr.
First_Name: Theodor
Middle_Name: Seuss
Last_Name: Geisel |
ונעשה select על Full_Name, נקבל את הפלט הבא:
קוד: |
select Full_Name from use_computed_by;
Full_Name
=======
Theodor Seuss Geisel |
כאשר נעשה select על Name_With_Title נקבל את התוצאה הבאה:
קוד: |
select Name_With_Title from use_computed_by;
Name_With_Title
===========
Dr. Geisel |
במקרה הזה לפחות יש טעות, כי היינו צריכים לקבל את שם העת שלו: ד"ר סוס