我一直在尝试为一个副项目设计一个数据库模式,但我无法生成任何我喜欢的东西。我正在使用带有 LINQ 的 ASP.Net 进行数据访问:
我将允许用户指定最多 10 个“项目”,每个项目具有 2 个数字属性和 1 个引用属性,即项目名称。
如果我将此条目放入 1 行,它很容易等于大约 30+ 列(最少),例如 item_1_name (ref) item_1_weight item_1_volume item_2_name...等...
而且我不能简单地将这些列变成参考表,因为每个属性的范围基本上可以从 1 到 400+。
我还认为,如果用户只决定将 1 项放入他们的条目中,那么我为该数据创建对象的方法将是静态的,就像 LINQ 一样,我必须检查属性和诸如此类的东西是否为 NULL 并相应地工作. 此外,如果我想增加条目中允许的项目数量,使用起来会很头疼。
我想到的另一个选择是简单地为每个项目创建一行并将其与条目 ID 绑定。所以我基本上永远不会有空条目,但我的表会变得非常深,但不会很宽,因为只有大约 5 个奇数列。
我的设计中是否有一些我忽略的东西/是否有更好和有效的方法来做到这一点?
编辑:当我说它将以天文数字增长时,我的意思是:用户可以创建一个条目,每个条目很可能有一组项目。因此,假设他们每天访问该站点 1 个条目,他们可以拥有 3 组项目,最大项目数 (10),这相当于该唯一条目的 30 个项目。以该速率每周输入一个条目,您可以为该单个用户提供 210 行。