应用程序的类结构和数据库结构

时间:2012-02-20 20:31:42

标签: c# asp.net database class

我想允许用户创建自己的实体,例如:   - 学生(姓名,年龄,学校,照片等)   - 动物(名称,类型,国家等)   - 汽车(品牌,颜色,价格等) 等

然后用户将能够根据创建的实体在数据库中添加记录。

所有属性都是字符串。

我的问题是如何在数据库中最好地保存这些实体的实例。 为我创建的每个实体创建一个新表是不可能的。 我想在表中保存创建的每个实体的属性,然后在另一个表中,这个实体的实例,属性将被分隔为逗号,例如;

实体结构表(适用于学生):

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#中开发应用程序。

3 个答案:

答案 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)

NameValue

ID int PK
名称nvarchar(50)
StudentID int FK
值nvarchar(50)

你会发现查询数据库将变成一个真正的麻烦,因为你需要将所有东西都转出来。但是如果你的每个对象都是真正独特的,那么旋转就无济于事。