sab*_*our 8 database database-design drop-down-menu
我试图找到设计数据库的最佳方法,以便允许以下场景:
我应该如何设计数据库来处理这种情况,因为我可能想要使用大学ID进行排序(可能仅针对内置大学而不是用户输入的大学)
谢谢!
我只是想让它类似于Facebook如何处理这种情况.如果用户选择他的教育(通过实际输入我不关心的组合框)并选择其中一个返回值,Facebook会做什么?
在我的猜测中,它会在多对多表中插入UserID和EducationID.现在如果用户输入的内容根本不在数据库中?它仍然存储在他的个人资料中,但在哪里?
CREATE TABLE university
(
id smallint NOT NULL,
name text,
public smallint,
CONSTRAINT university_pk PRIMARY KEY (id)
);
CREATE TABLE person
(
id smallint NOT NULL,
university smallint,
-- more columns here...
CONSTRAINT person_pk PRIMARY KEY (id),
CONSTRAINT person_university_fk FOREIGN KEY (university)
REFERENCES university (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
);
Run Code Online (Sandbox Code Playgroud)
对于系统中的Unis,public设置为1,对于user-entered-unis,设置为0.