所以,我们有一个有趣的情况。 我们应该在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