我的表格格式如下,其中每一行代表一张纸:
ID TITLE YEAR CITE1
1 TITLE1 YEAR1 3
2 TITLE2 YEAR2 1
3 TITLE3 YEAR3 N
...
N TITLEN YEARN 2
我已选择ID作为主键。 Cite1包含特定论文引用的论文ID。因此,Cite1中的值基本上是ID。将来,我想在一篇论文及其引用的论文之间建立联系。
我的问题是,我是否只将ID作为主键,还是应该对CITE1列做些事情,因为它还包含论文ID?
我是mysql新手,因此感谢您的反馈!
最佳答案
您正在寻找的想法是一个“外键”。实际上,ID
是表上的主键。 CITE1
是引用同一表的外键:
alter table papers add constraint fk_papers_cite1
foreign key (cite1) references papers(id);
我担心您有一列称为
CITE1
而不是CITE
的列。如果论文可以引用其他多篇论文,则表示此问题的正确方法是使用另一个表,例如PaperCitations
,该表每篇论文和每篇论文被引用一行。拥有多个称为CITE1
,CITE2
之类的列的方法并非可行。将定界列表存储为字符串是完全错误的。关于mysql - MySql,同一表中的2列引用相同的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35241178/