首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以使用SQL来建模我的数据吗?

我可以使用SQL来建模我的数据吗?
EN

Stack Overflow用户
提问于 2011-05-27 21:49:42
回答 2查看 72关注 0票数 0

我正在尝试开发一个投标系统,其中一个项目被列出,投标人可以放置一个出价,其中包括投标金额和信息。一个项目可能有任意数量的投标。投标人还应该能够看到所有的投标,他们已经在不同的项目。

我不熟悉SQL,也不知道如何对这个场景建模。我在想:

  • A用户表,它存储有关投标人的信息,如名称、ID号等。
  • A投标表,其中包含系统中的所有投标,它存储投标人的用户ID、出价金额、投标描述。
  • 一个作业表,它包含海报的用户ID、项目描述,然后引用各种投标。

我看到的问题是如何将这些对投标表条目的引用存储在“职务”表条目中?

这是处理这个问题的正确方法吗?我是否应该考虑建立一个面向文档的数据库,如Mongo,而不是?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-27 22:02:56

SQL会正常工作,就像设置它一样.我会这样做:

代码语言:javascript
运行
复制
create table usertable (
    userID integer unsigned not null auto_increment primary key,
    userName varchar(64) );
create table jobtable (
    jobID integer unsigned not null auto_increment primary key,
    jobDesc text,
    posterUserRef integer not null );
create table bidtable (
    bidID integer unsigned not null auto_increment primary key,
    bidAmount integer,
    bidDesc text,
    bidTime datetime,
    bidderUserRef integer not null references usertable(userID),
    biddingOnJobRef integer not null reference jobtable(jobID) );

现在,您可以通过各种连接(每个用户的最高出价、所有的工作出价、所有用户的出价、最高的工作投标人等)计算出您想要的任何东西。

票数 1
EN

Stack Overflow用户

发布于 2011-05-27 21:55:10

你描述的是一段多到多的关系。在非常简单的形式中,您的表应该如下所示:

代码语言:javascript
运行
复制
user:
    id int primary key

job:
    id int primary key

bids:
    user_id int
    job_id int
    primary key(userid, job_id)
    foreign key (user_id) references user (id)
    foreign key (job_id) references job (id)

基本上,投标表将包含表示用户和作业的字段,以及您需要的任何其他字段,如出价金额、日期/时间戳等.

现在,我已经将user_id/ job _id字段作为投标表中的主键,这将限制每个用户每个作业出价1次。只需移除主键,并在每个字段中放入两个常规索引以消除限制。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6158061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档