簡體   English   中英

多對多關系的數據庫設計

[英]Database Design for Many To Many Relationship

我正在重寫一個 MS Access 數據庫,不幸的是我們需要保留當前數據庫中存在的一些奇怪的進程。 我在做數據庫設計時遇到了一些麻煩,所以我希望得到一些建議/指導。

新表:

tblCurrentDayRecords
BusinessDate (PK)
Acct (PK)
ActivityDate (PK)
Type
RecordGuid

tblNotes
RecordGuid (PK)
NoteGuid (PK)
Note
NoteDate
NoteAddedBy

每天早上都會將數據添加到tblCurrentDayRecords 然后在 UI 中處理這些記錄。 處理記錄時,使用 RecordGuid 添加與記錄相關的注釋。

我在設計中遇到的問題是,每天我們都會將新記錄添加到tblCurrentDayRecords表中,但可能會出現相同的帳戶,如果出現,則必須每天將來自先前記錄的注釋橋接起來。 所以過程是這樣的:

Day 
5/30 Acct 123456789 Note1, Note2
5/31 Acct 123456789 Note1, Note2, Note3
6/1  Acct 123456789 Note1, Note2, Note3, Note4, Note5

因此,如果每天都添加帳戶,我需要將前一天的筆記移動到轉發。 這些記錄中的每一個都會有一個新的 RecordGuid,當它被添加到tblCurrentDayRecords表時會生成它。

我願意使用 Join 表來更改 Notes 表的設計,不管怎樣讓它工作,但我無法找出最好的方法來做到這一點,而不必每天運行 Insert 或 Update 以將新記錄綁定到以前的筆記。 讓我澄清一下,我不能只用新的 RecordGuid 更新 Notes 表,因為每天的記錄仍然需要訪問注釋。

我希望這個解釋足以獲得一些關於如何進行的反饋或建議。

您在描述中有點迷失了我,但我可以告訴您,一般來說,對於多對多關系,您需要有一個表,將表 1 中的行與表 2 中的行相關聯。這是你在找什么?

tblRecordNotes
  BusinessDate (PK)
  Acct (PK)
  ActivityDate (PK)
  RecordGuid (PK)

然后處理您的示例數據,您將執行以下操作:

INSERT INTO tblRecordNotes VALUES ('2011-05-30', 123456789, '2011-05-30', 'Note1');
INSERT INTO tblRecordNotes VALUES ('2011-05-30', 123456789, '2011-05-30', 'Note2');
INSERT INTO tblRecordNotes VALUES ('2011-05-31', 123456789, '2011-05-31', 'Note1');
INSERT INTO tblRecordNotes VALUES ('2011-05-31', 123456789, '2011-05-31', 'Note2');
INSERT INTO tblRecordNotes VALUES ('2011-05-31', 123456789, '2011-05-31', 'Note3');
INSERT INTO tblRecordNotes VALUES ('2011-06-01', 123456789, '2011-06-01', 'Note1');
INSERT INTO tblRecordNotes VALUES ('2011-06-01', 123456789, '2011-06-01', 'Note2');
INSERT INTO tblRecordNotes VALUES ('2011-06-01', 123456789, '2011-06-01', 'Note3');
INSERT INTO tblRecordNotes VALUES ('2011-06-01', 123456789, '2011-06-01', 'Note4');
INSERT INTO tblRecordNotes VALUES ('2011-06-01', 123456789, '2011-06-01', 'Note5');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM