【发布时间】:2017-07-26 12:50:18
【问题描述】:
现在,我正在学习所有关于数据库设计的知识。基本上我的数据库的内容是乐器的品牌。并且有两种类型的乐器,即吉他和贝斯。现在,我偶然发现了一个问题,有时一个品牌会有两种类型。如下表所示,您可以看到 ibanez 重复了两次,这样它就可以同时容纳吉他和贝司。有人建议我永远不要在数据库中重复数据,但我还没有想到解决方案。
brandId 类型 名称 图片
1 吉他 Ibanez xyz.jpg
2 贝斯 Ibanez hyz.jpg
3 吉他 挡泥板 abc.jpg
4 贝斯 挡泥板 fgh.jpg
5 吉他 PRS yui.jpg
6 吉他 ESP mbm.jpg
7 贝斯 沃里克 omo.jpg
当我想在我的网页中显示品牌图片时,无论是吉他还是贝司,我通常会在 asp.net 中使用此查询。
public List<brand> GetBrandData()
{
MusicStoreDBEntities obj = new MusicStoreDBEntities();
List<brand> list = new List<brand>();
list = (from g in obj.brands where g.type=="Guitar" select g).ToList();
return list;
}
我想知道是否有不需要重复数据的替代数据库设计方法。请在asp.net中提供更好的解决方案或更好的查询,并希望提供实际示例。
【问题讨论】:
-
Google 数据库标准化初学者。您正在走上一条您不想遵循的冗余路径。
-
WROX 关于数据库设计的书非常棒。
-
@Rockstar 关注stackoverflow.com/questions/45283951/…。我已经为您的帖子发布了数据库设计的答案
标签: c# sql asp.net sql-server database