这可能有点花哨,但是有没有任何模式或东西可以以最佳方式在关系数据库(不是nosql)中存储任何类型的对象?
例如,没有最佳方式:
class Person{
string FirstName {get;set;}
string LastName {get;set;}
}
class Product{
string Name {get;set;}
decimal Price {get;set;}
}
在数据库中:
CREATE TABLE Data
(Id int PRIMARY KEY,
TypeName nvarchar(50),
PropertyName nvarchar(50),
PropertyValue binary)
然后记录像这样存储在数据库中:
1 Person FirstName Jalal
2 Person LastName A.R
3 Product Name Apple
4 Product Price 2
最佳答案
您所描述的本质上是 Entity-Attribute-Value table 。
它适用于潜在属性数量较多但潜在值数量较少的情况。此类用例的一个示例是医疗数据(症状),其中患者可能出现的潜在症状数量很大,但实际症状数量很少。
使用不当,就是Inner Platform Effect的经典例子.
关于c# - 在关系数据库中保存任何类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9488888/