因此,我最近的任務是使用C#將舊的平面文件系統調度系統轉換爲SQL數據庫。我應該爲每個類別創建單獨的表嗎?
我發現的主要問題是任務(請參閱下面的代碼段)使用字符串列表(使用GUID創建)使我不確定如何構建數據庫。
public class Task
{
private string TaskID;
private string TaskName;
private string TaskDescription;
private bool IsComplete;
private DateTime EstimatedStartDate;
private DateTime ActualStartDate;
private DateTime EstimatedCompletionDate;
private DateTime ActualCompletionDate;
private string TeamLead;
private List<string> TeamMembers = new List<string>();
private TaskType TaskType;
private string ParentID;
private List<string> ChildIDs = new List<string>();
}
說到SQL我知道使用只能包含在單個單元格中的列表通常是nono。
真正的問題是:我是否應該在列表中查詢只需要查詢taskID或parentID以查找請求的任務或將其拆分爲系統中每個類別的不同表以4種不同的類別工作),然後依賴任務的類型和taskID來選擇需要查詢其子級的正確表。
爲了能夠理解可以給這個問題的任何答案,您應該首先閱讀關係數據庫系統。現在的問題顯示出其嚴重缺乏知識。 – Fildor
我可能會有一個Task表和兩個表,通過TeamMembers和ChildIDs的遞增主鍵連接到這個表。如果你希望它正常化,那麼可能還有一個TaskType表。 ChildIDs是否鏈接到其他任務?在這種情況下,將Children連接到childs主鍵的表格將是一個主意,而不是使用Guid。 –
您需要閱讀如何規範化數據庫。在你的情況下,你將有一個表* Task *,它將引用自己(父),* Team * table,* TeamMember *表。一個*團隊*可以有很多*團隊成員*,並可能(取決於您的要求)另一種方式,那麼你有多對多的關係來處理。你明白了。 – CodingYoshi