【发布时间】:2011-06-09 22:13:48
【问题描述】:
在以下两种数据库布局之间进行选择时,我真的可以使用一些见解。
Layout #1 | Layout #2
|
CUSTOMERS | CUSTOMERS
id int pk | id int pk
info char | info char
|
ORDERS | ORDERS
id int pk | id int pk
customerid int fk | customerid int fk
date timedate | date timedate
|
DETAILS | INVOICES
id int pk | id int pk
orderid int fk | orderid int fk
date timedate | date timedate
description char |
amount real | DETAILS
period int | id int pk
| invoiceid int fk
| date timedate
| description char
| amount real
这是针对小型企业(独资经营者)的计费应用程序。第一个布局没有单独的发票表格,而是依赖于 DETAILS 中的字段“期间”作为开票周期编号。第二种布局引入了一个专门用于发票的表格。
具体来说,在这个应用程序中,您会在什么时候看到 Layout #1 被破坏,或者随着数据量的增加,什么样的事情会变得越来越难?在布局#2 的情况下,增加的灵活性/复杂性在实际中意味着什么?对 30-60-90 老化有何影响?我相信这在某个时候是必要的。
更一般地说,这似乎是您是否通过表中的字段或全新表中的字段跟踪/控制某些东西的一般情况,但这并不是真正的规范化问题,是吗?您通常如何做出选择?
【问题讨论】:
-
我认为您最好为您的客户服务,建议他们购买 Quickbooks 的副本,而不是为他们编写数据库应用程序。
-
@Catcall 谢谢,但这只是一个练习应用程序。没有客户。我看过你的一些帖子,你似乎知道你的东西。如果您能饶恕它们,我将不胜感激您对编程问题的看法。 :)
标签: database database-design invoice