稀疏表与单独的表

时间:2017-10-15 12:17:07

标签: c++ database-design sqlite

我有一个c++基类A和几个派生子类B1, B2, B3, ...。我有一个sqlite3数据库文件,其中包含构造这些子类实例的信息。假设A有一些像

这样的成员
int number;
std::string label;

B1添加会员

std::string uuid;

B2添加成员

std::string url;

我倾向于在sqlite数据库中只有一个表用于所有A类,其中包含(subclass int, number int, label text, uuid text, url text)这样的列,其中第一列表示我正在存储的类和uuid例如,对于所有B2类,为null。

另一种方法是为每个子类创建一个表。

如果某个子类中的成员数(例如B3)很大(仍然不是那么多,大约15列),那么对于每个类型都不是B3的类第一种方法中的相应行将有大量NULL列。但是我认为在SQLite NULL列中不会在磁盘上花费太多开销,第一种方法是正确的还是不好的做法?

0 个答案:

没有答案