当前位置:  开发笔记 > 开放平台 > 正文

当我想存储从下拉列表或用户输入中选择的值时,db设计中的最佳做法是什么?

如何解决《当我想存储从下拉列表或用户输入中选择的值时,db设计中的最佳做法是什么?》经验,为你挑选了1个好方法。

我试图找到设计数据库的最佳方法,以便允许以下场景:

    向用户显示大学的下拉列表(例如)

    如果存在,用户从列表中选择他/她的大学

    如果大学不存在,他应该在一个文本框中进入他自己的大学(有点像其他:[___________])

我应该如何设计数据库来处理这种情况,因为我可能想要使用大学ID进行排序(可能仅针对内置大学而不是用户输入的大学)

谢谢!

我只是想让它类似于Facebook如何处理这种情况.如果用户选择他的教育(通过实际输入我不关心的组合框)并选择其中一个返回值,Facebook会做什么?

在我的猜测中,它会在多对多表中插入UserID和EducationID.现在如果用户输入的内容根本不在数据库中?它仍然存储在他的个人资料中,但在哪里? 输入

打字不存在的大学



1> svinto..:
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
);

对于系统中的Unis,public设置为1,对于user-entered-unis,设置为0.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有