我有这个表来规范一个uni项目,现在每次我认为它应该只是 是两张桌子,然后我认为不应该是三张......我会把这个告诉你们其中一个人的优秀知识,因为你们可以指出它应该做的最佳方式和原因。
Number Type Single rate Double rate Family rate
1 D 56 72
2 D 56 72
3 T 50 72
4 T 50 72
5 S 48
6 S 48
7 S 48
8 T 50 72
9 T 50 72
10 D 56 72
11 D 56 72
12 D 56 72
13 D 56 72
14 F 56 72 84
15 F 56 72 84
16 S 48
17 S 48
18 T 50 72
20 D 56 72
非常感谢任何可以帮助我看到正确方法的人
答案 0 :(得分:1)
除非能够准确理解列的含义以及数据列如何相互依赖,否则无法生成正确的表设计。但是,一旦您为我们提供更多信息,这是一个可以改进的尝试。使用过的命名并不像我想的那样好,但正如我所说,问题的目的并不明确。无论如何,这是一个开始,希望它会帮助你。 另请注意,并非所有类型的应用程序都需要规范化。例如,商业智能可以使用故意未完全规范化的模式(例如Star Schema)。因此,数据库设计有时可能取决于应用程序的性质以及数据的变化方式。
Main
----
MainID int PK
MainTypeID Char(1) Example: D, T, S etc.
MainRateIntersectionID Int
MainRateIntersection
--------------------
MainRateIntersectionID int PK
MainID int
RateCategoryID int
The combination of MainID and RateCategoryID should be constrained
using UNIQUE INDEX
RateCategory
------------
RateCategoryID int PK
RateCategoryText Varchar2(15) Not Null Example:Single, Family, etc.
RateValue Int Nullable
MainType
---------
MainTypeID Char(1) PK
根据新信息,我修改了模型。我删除了'人工'ID,因为这是一个标准化培训项目。人工ID(代理键)是正确的添加,但不是我的目标。我必须添加预订表,其中将为每个预订的客户插入一行。您需要在该表中添加适当的客户信息。您提供的表更多的是逻辑视图,可以从查询返回,但不是在数据库中存储和更新的物理表。相反,应该使用预订表。
我希望这可以帮到你。