我想允许用户创建自己的实体,例如: - 学生(姓名,年龄,学校,照片等) - 动物(名称,类型,国家等) - 汽车(品牌,颜色,价格等) 等
然后用户将能够根据创建的实体在数据库中添加记录。
所有属性都是字符串。
我的问题是如何在数据库中最好地保存这些实体的实例。 为我创建的每个实体创建一个新表是不可能的。 我想在表中保存创建的每个实体的属性,然后在另一个表中,这个实体的实例,属性将被分隔为逗号,例如;
实体结构表(适用于学生):
property_name entity_key
name student
age student
school student
photo student
实体实例表:
instance entity_key
joe,19,nyhigh,joe.jpg student
与我一起创建这些记录实例的类怎么样? (?自动生成的类?)(?一个带有List属性的类,我将在其中分隔'joe,12,nyhigh,joe.jpg'字符串?) 有没有人遇到过这类问题?
我将在asp.net C#中开发应用程序。
答案 0 :(得分:1)
序列化实体并将其保存在实例列中。如果需要对值进行数据库查询,请使用XML序列化。
public static string SerializeToString(object obj)
{
using (var serializer = new XmlSerializer(obj.GetType()))
using (var writer = new StringWriter())
{
serializer.Serialize(writer, obj);
return writer.ToString();
}
}
答案 1 :(得分:0)
您可以创建实体类型表和实体属性表,并将它们中的两个相关联。如果您的所有属性都是字符串。如果不是,您也可以在实体属性表中存储类型。
答案 2 :(得分:0)
您需要创建一个名称值对表,并将其指向学生表
ID int
FirstName nvarchar(50)
LastName nvarchar(50)
ID int PK
名称nvarchar(50)
StudentID int FK
值nvarchar(50)
你会发现查询数据库将变成一个真正的麻烦,因为你需要将所有东西都转出来。但是如果你的每个对象都是真正独特的,那么旋转就无济于事。