假设 A 和 B 在概念上是不同的实体,它们具有一些相似的属性,当然还有它们自己的特定属性。在数据库设计中,我应该将这两个实体放在一个大聚合表中还是两个分别设计的表中。
\n\n例如,我有两种付款方式;在线支付和手动支付的定义如下,
\n\nTABLE [OnlinePayments]\n( \n [ID] [uniqueidentifier], \n [UserID] [uniqueidentifier], \n [TrackingCode] [nvarchar](32), \n [ReferingCode] [nvarchar](32),\n [BankingAccID] [uniqueidentifier],\n [Status] [int],\n [Amount] [money],\n [Comments] [nvarchar](768),\n [CreatedAt] [datetime],\n [ShopingCartID] [uniqueidentifier],\n)\nRun Code Online (Sandbox Code Playgroud)\n\n和
\n\nTABLE [ManualPayments]\n(\n [ID] [uniqueidentifier],\n [UserID] [uniqueidentifier],\n [BankingAccID] [uniqueidentifier],\n [BankingOrgID] [uniqueidentifier],\n [BranchName] [nvarchar](64),\n [BranchCode] [nvarchar](16),\n [Amount] [money],\n [SlipNumber] [nvarchar](64),\n [SlipImage] [image],\n [PaidAt] [datetime],\n [Comments] [nvarchar](768),\n [CreatedAt] [datetime],\n [IsApproved] [bit],\n [ApprovedByID] [uniqueidentifier],\n)\nRun Code Online (Sandbox Code Playgroud)\n\n我的一位朋友告诉我,为此类相似的实体创建两个不同的表并不是一种良好的设计方法,为了提高性能和易于数据操作,应将它们放在一个表中。
\n\nI\xe2\x80\x99m 现在想知道该怎么办?在这种情况下,最佳做法是什么?
\n感谢您的提前注意,我是ASP.NET AJAX AsyncFileUpload的新手,所以我创建了一个aspx页面来测试它,但是看起来这个控件存在一些错误,因为服务器端UploadedComplete事件不会触发.
aspx:
<form id="form1" runat="server" method="post" enctype="multipart/form-data">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<cc1:AsyncFileUpload ID="AsyncFileUpload1" runat="server" OnUploadedComplete="AsyncFileUpload1_UploadedComplete" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
和背后的代码
public partial class Tester : System.Web.UI.Page
{
protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
this.Label1.Text = "OK";
}
}
Run Code Online (Sandbox Code Playgroud)
有谁请让我知道为什么它不起作用?非常感谢