我在ASP.NET MVC应用程序中使用Fluent NHibernate
来检索数据并将数据保存到Postgresql
数据库。
假设您有一张表格
Fields {Name, DataType, Value}
//Model
public class Table {
public virtual string Name { get; set;}
public virtual string DataType { get; set;}
public virtual string Value { get; set;}
}
所以典型的记录可能是:
Record { "Firstname", "Varchar", "Bob" }
Record { "DateOfBirth", "Timestamp", "2003-04-12 04:05:06" }
因此,为了使其全部工作,值必须是Varchar
类型。
有更好的方法吗?我不喜欢Value
类型为string
/ Varchar
的想法。
我希望值类型属于object
类型。我试过这个,但从Exception
获得Fluent NHibernate
。
您如何从DDD角度解决此问题?
答案 0 :(得分:1)
你可以使用json(或jsonb,如果你的postgres版本支持它)。
在这种情况下,我不会这样做。为了最好地利用索引和数据搜索,最好提出一种结构,将不同的数据类型保存在不同的字段中,这样就可以对它们进行有效的排序和搜索。
一个例子:
create table obj as (obj_id serial,
name varchar,
vc_data varchar,
ts_data timestamp,
intdata integer
datatype varchar);
如有必要,您可以在所有字段上创建索引,甚至可以创建视图 你的一些代码更简单(当不按数据类型搜索或排序时)
create view obj_view as
(select obj_id,
name,
coalesce(vc_data, ts_data, int_data) data
from obj)