我正在考虑我的申请,我想存储有关饮品的数据。现在我在想什么是最好的,如果我保存成分就像在桌子上的nvarchar列与饮料或如果我创建新的成分表和创建一对多的关系?我希望数据库只是只读,我希望按成分选择过滤器。那么Windows手机的最佳方式(性能)呢?如果新表是更好的选择,我应该使用EntitySet,EntityRef,我是对的吗?我会为表格中的每一种新成分排序吗?假设我有100个饮料,平均每个饮料有4个成分,所以我在第一个表100个和第二个cca 400个?谢谢你的帮助
答案 0 :(得分:1)
实际上,提出的两种解决方案都是错误的。饮料可以含有许多成分,并且可以在许多饮料中使用一种成分。因此,我们在这里有多对多的关系。对此进行建模的正确方法如下(我为其添加数据更容易理解):
成分(PK:Id)
+----+--------------------+
| Id | Name |
+----+--------------------+
| 1 | Water |
| 2 | Sugar |
| 3 | Coffe |
| 4 | Virgin Islands Tea |
| 5 | Ice |
+----+--------------------+
饮品(PK:Id)
+----+-------------+
| Id | Name |
+----+-------------+
| 1 | Black Coffe |
| 2 | Tea |
| 3 | Ice Tea |
+----+-------------+
Drinks_Ingredients(PK:Drink_Id,Ingredient_Id)
+----------+---------------+------------+
| Drink_Id | Ingredient_Id | Proportion |
+----------+---------------+------------+
| 1 | 1 | 70 |
| 1 | 2 | 10 |
| 1 | 3 | 20 |
| 2 | 1 | 90 |
| 2 | 4 | 10 |
| 3 | 1 | 80 |
| 3 | 4 | 10 |
| 3 | 5 | 10 |
+----------+---------------+------------+
我正在添加此Proportion
列,以向您展示如何添加依赖于这对饮料成分的数据。现在,如果您担心表格的大小,它将会非常小,因为只有具有更复杂数据类型(varchars)的表格将是成分和饮料表格,这些表格将具有最少量的记录可能:每种饮料一种,每种成分一种。
如果你仍然怀疑看看这个例子,你会得到它:)
答案 1 :(得分:0)
我会为带有描述和身份证的食材做一张桌子,并将ids存放在饮料桌中,因为它是优雅的方式。对于100种饮料,您不会看到性能差异。