【发布时间】:2017-02-09 14:59:54
【问题描述】:
首先,对不起我的英语不好。我正在尝试规范化养老金系统中的表格,其中订阅者按月支付。我需要知道谁得到了报酬,谁没有得到报酬,以及他们得到了多少报酬。我相信我正在使用 SQL Server。这是一个例子:
id_subscriber id_receipt year month pay_value payment type_pay
12 1 2016 January 100 80 1
13 1 2016 January 100 100 1
14 1 2016 January 100 100 1
12 2 2016 February 100 100 2
13 2 2016 February 100 80 1
但我不乐意为每个订阅者重复年份和月份。好像不太对。有没有更好的方法来存储这些数据?
编辑: 案例如下:这家公司有很多订阅者,他们必须每月支付,支付方式多种多样。他们为许多客户制作一张收据,而该收据的每个客户都可能分期付款或分期付款。
这些是我的其他表格:
tbl_subscriber
id_suscriber(PK) first_name last_name address tel_1 tel_2
12 Juan Perez xxx xxx xxx
13 Pedro Lainez xxx xxx xxx
14 Maria Lopez xxx xxx xxx
tbl_receipt
id_receipt(PK) value elaboration_date deposit_date
1 1,000.00 2015-09-16 2015-09-20
2 890.00 2015-12-01 2015-12-18
tbl_type_paym
id type description
1 bank xxxx
2 ventanilla xxx
【问题讨论】:
-
更具体...您尝试过什么,想要什么?
-
编辑您的问题并包括示例数据、所需结果和您实际使用的数据库。
-
弗兰克你的问题不清楚。
-
使用小整数来存储月份。
-
可能存在涉及“id_receipt”、“year”和“month”的函数依赖关系。目前尚不清楚它是否也可能涉及其他属性。在您知道函数依赖之前,您无法规范这种关系。我们谁也无法告诉您 FD 是什么;你必须告诉我们。
标签: sql database normalization database-normalization