所以,我們有一個有趣的情況。 我們應該在Linux下用C語言編寫DBMS,我們遇到以下問題: 當試圖連接兩個關係/表時,新關係/表的字段/列數等於兩個連接關係/表的總和。這很好,但是當我們必須從兩個連接關係/表中複製元組/行的數據時,我們似乎找不到方法。元組/行被實現爲通過該結構列表中的元素:將兩個結構合併爲一個新的C?
typedef struct element {
void *data;
struct element *next;
} Element;
新元件通過該函數建立:
Element *
newElement (void *data)
{
Element *e = (Element*) malloc (sizeof (Element));
assert (e != NULL);
e->data = data;
e->next = NULL;
return e;
}
而*數據參數作爲這種類型的傳遞:
typedef struct {
int sid;
char sname[STRLEN];
int rating;
float age;
} Sailor;
事情是當我們必須加入兩個關係時,我們無法知道它們用於它們的元組/行的結構,因此我們無法爲這個新的關係創建新的元組/行這兩個連接關係的元組/行。
請幫忙。
你正在用C編寫一個DBMS?哇。請讓我們知道它是如何發展的。 – 2011-04-04 10:06:42
這是功課嗎?如果是這樣,請考慮標記爲此。 – 2011-04-04 10:10:17
我不知道如何DBMSs實現,但這裏是我的2美分,可能你應該看一個表作爲一個列的集合,其中每個列是一個數組,而不是每一行作爲數據結構。這將包括一個新的列,就像分配一個新的指針一樣簡單。 – 2011-04-04 10:21:04