如果我有4个具有分层结构的表,例如:
这是我的模型概念:
建筑模型
public class Building
{
[Key]
public string BuildingId { get; set; }
public string BuildingName { get; set; }
public virtual ICollection<Floor> floors { get; set; }
}
地板模型
public class Floor
{
[Key]
public string BuildingId { get; set; }
[Key]
public string FloorId { get; set; }
public virtual Building Building { get; set; }
public virtual ICollection<Room> rooms { get; set; }
}
房间模型
public class Room
{
[Key]
public string BuildingId { get; set; }
[Key]
public string FloorId { get; set; }
[Key]
public string RoomId { get; set; }
public virtual Building Building { get; set; }
public virtual Floor Floor { get; set; }
public virtual ICollection<Amenity> amenities { get; set; }
}
舒适模型
public class Amenity
{
[Key]
public string AmenityId { get; set; }
[ForeignKey("Builiding")]
public string BuildingID{ get; set; }
[ForeignKey("Floor")]
public string FloorID{ get; set; }
[ForeignKey("Room")]
public string RoomID{ get; set; }
}
这是否正确,还有什么我需要的吗?
我整天都试过这个ASP.NET tutorial,但是理解和表达我的概念太简单了,因为我不熟悉C#语法或.NET。
答案 0 :(得分:0)
看起来很棒,你还会做什么。在一天结束时,您将使用一些数据库,从数据库的角度来看,它似乎是完美的结构。前进。
答案 1 :(得分:0)
如果我是你,我会使用NoSQL数据库,例如MongoDB。
它不使用表,但它使用彼此相似的集合。
使用Collection的好处是它可以包含数组或
JSON对象中的另一个JSON对象。
它甚至可以包含JavaScript函数和数组。
许多不同的房间也可以有不同类型的键和值,因为
MongoDB 无架构!
示例:收集“建筑物”
{
name: 'buildingName',
floor: [
'1': [
'room1': {
'amenity': [ 'door', 'toilet', 'bed', 'window' ]
},
// ...
],
// ...
], // ...
}
通过这种设计,您可以使用MongoDB完成所需的工作。