标签: relational-database

无法访问与has_one相关的模型

我有两个型号:ShowVenue.Show有一个场地,而每个场地都属于show.这两个条件在带有has_one&belongs_tostatements的模型文件中定义.但是,我无法通过这样做进入会场show.venue.考虑以下代码,其中s是一个Show实例:

logger.info("*********************")
logger.info("#{s.inspect}")
logger.info("#{Venue.find(s.venue_id)}") # Works
logger.info("#{s.venue}") # Causes a MySQL Error
logger.info("*********************")
Run Code Online (Sandbox Code Playgroud)

我觉得导致MySQL错误的行应该有效.这是错误:

ActiveRecord::StatementInvalid (Mysql::Error: Unknown column 'venues.show_id' in 'where clause': SELECT * FROM `venues` WHERE (`venues`.show_id = 95)  LIMIT 1)
Run Code Online (Sandbox Code Playgroud)

我不知道它为什么试图访问venues.show_id.有任何想法吗?

ruby activerecord ruby-on-rails relational-database has-one

0
推荐指数
1
解决办法
809
查看次数

用户项关系的数据库设计

我正在建立一个销售小部件的网站.我有一个小部件表,每个小部件都有一些属性(小部件名称,样式等).我还有一个供用户使用的表格.窗口小部件具有唯一ID,用户还具有与之关联的唯一ID.

我的用户希望开始向其帐户"添加"小部件.每个小部件都可以添加到无限量的用户中.所以我的问题是我应该创建一个表,让我们称之为User_Widget,它将UserID与WidgetID相关联?

我想到的另一种方法是在User表中使用逗号分隔值(WidgetID1xQuantity,WidgetID2xQuantity等).如果我标准化这种格式,我可以使用php来解析它并将它们内爆到一个数组中,然后可以交叉引用它来从Widget表中提取信息.

哪一个更快/更好的做法?如果我使用User_Widget方法,如果多个用户添加相同的小部件会发生什么?我只有两个条目吗?这不会增加额外开销吗?

小工具| 用户wid1 | user1 wid1 | 用户2

搜索这些(使用JOIN等)会比其他方法慢吗?

在此先感谢您的帮助.

丹尼尔.

php mysql database database-design relational-database

0
推荐指数
1
解决办法
217
查看次数

一对多关系?

如果我有这样的关系:1 - 0..1,它被认为是一对多?

我在mysql工作台中唯一的选择是:

 1:1, 1:n, n:n...
Run Code Online (Sandbox Code Playgroud)

谢谢!

mysql database database-design relational-database

0
推荐指数
1
解决办法
498
查看次数

当事务在时间戳排序协议中回滚时,为什么要为其赋予新的时间戳?

当在时间戳排序协议中回滚事务时,为什么要为其赋予新的时间戳?我们为什么不保留旧的时间戳记?

database relational-database optimistic-concurrency

0
推荐指数
1
解决办法
2053
查看次数

如何改进此数据库模型?

我正在尝试为客户设计DVD销售和DVD租赁的关系.虽然我不认为我的转换表是正确的.如果有人能让我知道我是否朝着正确的方向前进,那么设计会很棒.

关系模型

sql sql-server visio entity-relationship relational-database

0
推荐指数
1
解决办法
1051
查看次数

帮助表格规范化

非常感谢有关规范化和优化此表'table1'的帮助.我目前可以执行以下查询:

SELECT user AS users
FROM table1
WHERE project='Project B'
AND doctype='DocType B'
Run Code Online (Sandbox Code Playgroud)

并得到我想要的东西,但我觉得它不是很有效率,并希望得到如何改进的帮助(有解释).

最终我试图实现以下目标:
1)将这1个表分成多个表以便于维护
2)给定'project'和'doctype',返回所有用户

表格1:

project     doctype     user
-------     -------     ----
Project A   DocType A   User A
Project A   DocType A   User B
Project A   DocType A   User C
Project A   DocType A   User D
Project A   DocType B   User A
Project A   DocType B   User C
Project A   DocType B   User D
Project A   DocType C   User B
Project A   DocType C   User D
Project B …
Run Code Online (Sandbox Code Playgroud)

database database-design normalization relational-database

0
推荐指数
2
解决办法
172
查看次数

职位的优先数据库设计

我有两种类型的职位 - 公司职位和项目职位.以下是每个输入字段(在前端):

*company*
- company name
- company location
- company description

*project*
- project name
- project location
- project description
- project type
Run Code Online (Sandbox Code Playgroud)

什么是最好的数据库设计 - 一个表,保持所有字段分开 -

`job_post`
- company_name
- company_location
- company_description
- project_name
- project_description
- project_type
- project_location
Run Code Online (Sandbox Code Playgroud)

一张表结合了这些字段 -

`job_post`
- name
- location
- description
- project_type
- is_company (i.e., whether a company (True) or project (False)
Run Code Online (Sandbox Code Playgroud)

还是两张桌子,还是其他什么?为什么这种方式比其他方式更可取?

mysql sql database database-design relational-database

0
推荐指数
1
解决办法
226
查看次数

在关系数据库中选择On COUNT <x

我有以下3个表格:

TestGroup
RecordNumber(pk)

Test
RecordNumber(pk)
TestGroupRecordNumber(fk)

结果
RecordNumber(pk)
TestRecordNumber(fk)

基本上,TestGroup是一组测试,每个测试都包含许多结果.我想选择结果少于X的所有TestGroup.什么查询将实现这一目标?

sql select relational-database

0
推荐指数
1
解决办法
73
查看次数

如何加入两个相关表,而一个记录在另一个表中引用两个记录?

我有一个带有sender_id和receiver_id字段的事务表,另一个带有user_id first_name last_name等的用户表...

我想从事务中查询数据并从用户处加入详细信息,我需要为发送方和接收方带来first_name&last_name ...

SELECT t.* u.*
FROM transactions t, users u
WHERE t.sender_id = u.user_id OR t.receiver_id = u.user_id
Run Code Online (Sandbox Code Playgroud)

这当然不是解决方案,因为我无法知道结果集中的发送者/接收者,但它有助于说明问题

有任何想法吗?感谢Ajar

mysql sql relational-database

0
推荐指数
1
解决办法
49
查看次数

不断收到错误TypeError:函数最多接受2个参数(给定3个)

我目前正在上大学的课程项目,涉及一个测验,该测验将所有背景数据存储在数据库中。通过添加外键,我试图找到一种方法来合并两个表之间的外键数据。例如,users表存储用户数据及其用户ID。数据表将存储有关测验级别等信息以及该特定用户ID。插入数据时如何从两个表中自动更新该信息?

该方法似乎不起作用,下面是一些代码。

difficulty= (1,)
users_id = (1,)  

#values of variables

def users_level(db,cursor,difficulty,users_id):

   cursor.execute("insert into Data (Level,UsersID) VALUES (?,?)",(difficulty),(users_id))

   db.commit()
Run Code Online (Sandbox Code Playgroud)

然后出现错误:

   cursor.execute("insert into Data (Level,UsersID) VALUES (?,?)",(difficulty),(check_id))
TypeError: function takes at most 2 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)

有解决这个问题的方法吗?或者可能是一种更容易/更有效的方法,可以使用外键从其他表中自动增加ID /数据。谢谢。

python sqlite foreign-keys relational-database typeerror

0
推荐指数
1
解决办法
4540
查看次数