我有一个很大的练习列表,我目前存储在一个SQL表中,一列中有唯一的索引值(int),另一列中的练习名称。我试图确定一种有效的方法来存储练习集作为锻炼。
截至目前,我有两个想法但不确定最有效的方法(从存储和速度的角度来看)。这些是我正在考虑的想法:
解决方案1 创建一个新表,每个练习的列都有一个或0,具体取决于它是否在锻炼中。该训练将是一个索引列,具有唯一的int id。
解决方案2 创建一个新表,其中包含表示唯一训练的索引列。第二列,其中包含与该组训练相对应的数字数组。我更喜欢这个选项是它允许我保持锻炼中的锻炼顺序。
虽然目前我只有一个约800个练习列表和约400个练习列表(1)大小为800 x 400的阵列,而(2)将为400 x 2.但是,如果选择创建新的锻炼(只是说锻炼列表将被修复),表格(1)会明显加快。
有没有人建议如何在这样的环境中最小化尺寸和保持速度?
答案 0 :(得分:0)
我喜欢#2但你也可以,如果你想要一个更强大的解决方案,有3个表:
另外,我通常不会将每个练习的练习存储为数组。使用sql搜索该字段中的特定练习很困难,例如:
哪些锻炼包含锻炼XYZ?
你的桌子尺寸实际上很小。当您有10,000条记录或100,000条记录时,您可以开始考虑尺寸问题。