我有一个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
列中不会在磁盘上花费太多开销,第一种方法是正确的还是不好的做法?