我正在尝试找到设计数据库的最佳方法,以便允许出现以下情况:
- 向用户呈现大学的下拉列表(例如)
- 用户从列表中选择他/她的大学(如果存在)
- 如果该大学不存在,他应该在文本框中输入自己的大学(有点像其他:[___________])
例如,考虑到我可能想使用大学 ID 进行排序(可能仅适用于内置大学,而不是用户输入的大学),我应该如何设计数据库来处理这种情况
thanks!
我只是想让它类似于 Facebook 处理这种情况的方式。如果用户选择他的教育(通过实际输入组合框,这不是我关心的)并选择返回值之一,Facebook 会做什么?
In my guess, it would insert the UserID and the EducationID in a many-to-many table. Now what if the user is entering is not in the database at all? It is still stored in his profile, but where?
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
);
public 对于系统中的 Unis 设置为 1,对于用户输入的 Unis 设置为 0。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)