我正在设计一个Access数据库,它与C#类库一起允许我存储和检索具有任意数据类型的对象。数据库的行为类似于EAV(实体/属性/值)存储,其中每个值的记录将引用实体名称,属性名称和数据类型(以及存储为序列化JSON的实际数据(Javascript对象)符号)字符串。
由于数据库的性质,我会一遍又一遍地使用相同的字符串。例如,许多记录将包含字符串" System.Double"存储在数据类型字段中。因此,我想通过在具有自动递增整数主键的表中记录这些字符串来节省空间,这将使用而不是直接使用字符串。所以,例如,而不是......
CREATE TABLE [Value] (
...
[DataTypeName] VARCHAR NOT NULL,
...);
......我有......
CREATE TABLE [Name] (
[NameID] AUTOINCREMENT PRIMARY KEY,
[NameValue] VARCHAR NOT NULL UNIQUE);
CREATE TABLE [Value] (
...
[DataTypeNameID] INTEGER NOT NULL REFERENCES [Name],
...);
这是一个好方法,还是Access数据库为重复使用的字符串内置了字符串压缩?