2014-09-08 2 views
-2

У меня есть две таблицы в SQL Server 2012, как:сервер SQL Создание дочерней таблицы

CropPurchase(Date,CropId,CustId,Qty,Price,Discount,Paid) 
CropSale(Date,CropId,VendorId,Qty,Price,Discount,Paid) 

Присоединившись операции этих двух таблиц я должен принести счет на переднем конце (C# приложение), называется:

CropAccount(Date,CropId,CustId,VendorId,DebitQty,CreditQty,DebitAmnt,CreditAmnt,Balance). 

Я должен заказать этот стол Date.

Так что вопрос в том, что то, что должно быть хорошая практика:

  1. создать еще одну таблицу, которая будет содержать смешанные записи обеих таблиц и принеси эту таблицу на переднем конце.

  2. Или получить запись непосредственно из двух таблиц в конец и не создавать третью таблицу (это может создать проблему при заказе по дате).

+1

Пожалуйста, сделайте свой вопрос более понятным, объясните это лучше. – JotaBe

+0

Я попытался прояснить, пожалуйста, посмотрите @JotaBe – Khan

ответ

0

Это зависит от ситуации. Обычно у вас разные таблицы для представления разных объектов. Таким образом, у вас есть нуль, одна или несколько записей CropPurchase на CropId и нуль, одна или несколько записей CropSale для каждого CropId. Два разных объекта. И чтобы получить данные на CropId, вам нужно будет присоединиться к одной или обем таблицам и агрегату, когда это необходимо. Так что оставайтесь с двумя столами и присоединяйтесь, когда это необходимо. (Однако вы можете написать представление для удобства.)

Если, однако, в CropPurchase и CropSale за CropId может быть не более одной записи, тогда мы не говорим о двух разных объектах. Мы говорим только об одной учетной записи урожая, идентифицированной CropId, имеющей данные о покупке и продаже. Тогда у вас должна быть одна таблица вместо двух.

В любом случае: не держите обе таблицы и добавьте третий, удерживающий свои данные избыточно. Это рано или поздно приведет к проблемам.

Просьба подробно рассказать о проблемах с порядком даты, о которых вы боитесь, что столкнетесь.

+0

Спасибо @Thorsten Kettner, у него будет только одна запись на CropId, поэтому я должен поддерживать только одну таблицу (CropAccount) вместо двух i.e CropPurchase и CropSale? – Khan

+0

Когда CropId уникален как в CropSale, так и в CropPurchase (и, возможно, их первичный ключ?), Тогда да; избавиться от двух таблиц и заменить их только одной таблицей, где в записи хранятся столбцы покупки и продажи. –

+0

спасибо большое @Thorsten :) – Khan

Смежные вопросы