Trường hợp nguyên mẫu để thử nghiệm FIT là một cái gì đó giống như một hệ thống biên chế. Một người sử dụng doanh nghiệp sẽ biết những gì các kết quả dự kiến sẽ được cho mỗi bộ đầu vào, tính thuế FICA từ tổng thu nhập. Kế toán nontechnical có thể xây dựng | Chapter 8 Contract Contract Contract CustomerOrder PK OrderNumber OrderItem ShippingAddressLinel ShippingAddressLine2 ShippingCity Shippingstate ShippingZip BillingAddressLine1 BillingAddressLine2 BillingCity BillingState BillingZip FirstName LastName MiddleInitial Gender OrderTotal FK1 OrderNumber ItemNumber Quantity Figure 8-2 Such a structure might be perfectly appropriate in a simple low-volume system with limited reporting needs. It is well optimized for reading orders which might be the most common use of the system. On the other hand it might be laid out in a more normalized fashion as shown in Figure 8-3. Address FK1 FK2 AddressId Line1 Line2 City State Zip Order Customer OrderId ShippingAddress BillingAddress Customer OrderTotal FK1 CustomerId FirstName LastName MiddleInitial Gender OrderDetail FK1 OrderId OrderDetailId ItemNumber Quantity Figure 8-3 In the context of a broader system it may be important to normalize the order data to work with the rest of the database with minimal repetition of data. If the data is normalized like this the one thing you absolutely don t want is for the application developer to need to know about the normalization or the relationships between tables. It is not uncommon for a database design such as the one above to lead to an interface that looks like this public interface NormalizedOrderStore int SaveCustomer Customer customer int SaveAddress Address address 157 Part III Code Construction void SaveOrder int customerld int addressId Customerorder order int GetCustomerByName string name int GetOrdersForCustomer int customerId CustomerOrder GetOrder int orderId Such an interface essentially makes the caller responsible for properly maintaining the foreign key relationships in the database. That directly exposes the details of the database design to the application developer. Those details are interesting and important to a database designer or DBA but they should not be in any way important to an application developer. What