我对以下各项的性能感兴趣,特别是在SQL Server中。
简单的整体概念:我有对象(比方说Type1
),每个对象都有另一种对象的列表(比方说Type2
)。
我当前的架构有一个每种类型的表。表1包含Type1
,表2包含Type2
。对于表2中的每条记录,都有一个引用将每个Type2
与其各自的Type1
相关联。
现在问题。我还没有走得太远,所以我不会改变太多。我不打算从数据库中单独提取Type2
对象。我将始终提取Type1
,它将随Type2
个对象列表一起提供,或者有一个方法来检索它们。在这种情况下,最好只是序列化Type2
个对象列表(比如说,JSON)并将它们存储在Table1
的每个Type1
列中?如果这个专栏变得非常大,我会注意到减速吗?
答案 0 :(得分:2)
问题是:在任何情况下,您是否会对Type2
可用的内容进行更改?几乎可以肯定,答案是肯定的:在未来的某个时刻,您将需要添加一个,或删除一个,或编辑一个。鉴于此,将它们序列化为JSON将是不利的。
使用两个单独的表保持您的安排,在INDEX
中的Type1
ID上创建Table2
(因此查找相关Type2
的查询将是很好,很快,即使桌子变得非常大,也不会有任何麻烦。