我有一个我正在使用的Web应用程序,它使用MySQL数据库作为后端,我需要知道在我继续进行之前,对我的情况有什么好处.
简单地说,在这个应用程序中,用户将能够使用任何数字字段(他们决定)构建自己的表单,现在我将它全部存储在由外键链接的几个表中.我的一位朋友建议,为了保持"简单/快速",我应该将每个用户的表单转换为平面表,以便查询来自它们的数据保持快速(如果增长很大).
我是否应该将数据库标准化为使用外键(索引等)汇集到关系表中的所有内容,还是应该为用户创建的每个新表单构建平面表?
显然,创建平面表的一些好处是数据分离(安全性),并且会降低查询速度.但是,我会从中获得多少收益呢?我真的不想要10000个表,并且要丢弃,改变和添加所有的时间,但如果它会比我更好...我只需要一些输入.
谢谢
我有下表:
Table1 Table2
CardNo ID Record Date ID Name Dept
1 101 8.00 11/7/2013 101 Danny Green
2 101 13.00 11/7/2013 102 Tanya Red
3 101 15.00 11/7/2013 103 Susan Blue
4 102 11.00 11/7/2013 104 Gordon Blue
5 103 12.00 11/7/2013
6 104 12.00 11/7/2013
7 104 18.00 11/7/2013
8 101 1.00 12/7/2013
9 101 10.00 12/7/2013
10 102 0.00 12/7/2013
11 102 1.00 12/7/2013
12 104 3.00 12/7/2013
13 104 4.00 12/7/2013
Run Code Online (Sandbox Code Playgroud)
我希望结果是这样的:
Name Dept Record
Danny Green …Run Code Online (Sandbox Code Playgroud) 这可能是一个非常简单的问题,所以提前道歉,但我对数据库的使用非常新.
我想让Postgres在多个连接表中运行全文搜索.想象一下像模型用户,具有相关模型UserProfile和UserInfo.搜索仅适用于用户,但包含来自UserProfile和UserInfo的信息.
我打算在搜索中使用杜松子酒索引.但是,我不清楚我是否需要在User表中使用单独的tsvector列来保存表中的聚合tsvector,并设置触发器以使其保持最新.或者,如果可以创建没有tsvector列的索引,只要任何相关表中的任何相关字段发生更改,它就会保持最新状态.此外,任何关于创建所有这些的命令的语法的提示也将非常受欢迎.
我想轻松删除多个表而不在drop查询中实际列出表名,要删除的表有前缀'wp_'
为了进一步详细说明这个问题的标题:我正在从电影网站上删除信息.我目前有一个MySQL填充了movie titles,movie urls等等的数据库.我现在urls要从数据库中取出它们并将它们设置为我start_urls的新数据库spider.每个url都是[插入abritrary电影]网页的链接,传达更多信息.我感兴趣的信息是:
其中,发行人,评级,导演和流派将从每个电影网页(一个评级,一个导演等)中与他们相关联.当然会有多个演员,并且取决于多个制片人(大片电影/大多数电影).这是我遇到问题的地方.我想建立一个pipeline' which puts each piece of info in an appropriate表within myMySQL database. So, a table for director, a table for rating, etc. Each table will also have电影标题`.我可以这样说明问题本身:
我无法协调如何pipeline用适当的方法构建一个合适的spider.我不确定我是否可以从一个蜘蛛返回多个东西并将它们发送到不同的pipelines(创建不同的项来处理single属性,以及一个不同的项来处理'多个'属性)或是否使用相同的管道并以某种方式指定什么去哪里(不确定我是否只能在刮痧后返回一件事).我将展示我的代码,希望问题会变得更加清晰.*注意:它还没有完成 - 我只是想填写如何做到这一点的空白
蜘蛛:
class ActorSpider(BaseSpider):
import sys; sys.path.append("/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages")
import MySQLdb
db = MySQLdb.connect(db = 'testdb', user='testuser', …Run Code Online (Sandbox Code Playgroud) 我有两张桌子
我想根据学校代码和年份使用学校代码表中的school_id列更新学生表中的school_code列.我有五年的数据.所以school_id每年都有所不同.
我的疑问是
UPDATE Master.Student
SET school_code=( select school_id from Master.school as sc
JOIN master.student as st
ON st.school_code=sc.school_code
WHERE sc.year=x)
WHERE st.year=x;
Run Code Online (Sandbox Code Playgroud)
但它没有更新.我收到了错误subquery returns more than one value.
我正在使用Mysql,我很难尝试从SELECT查询中获取结果.我有3张桌子.第一个表部分,第二个表部分成员和第三个表部分成员状态(此表中的数据是静态的).
select * from Sections;
| section_id | title | description | section_ownerid |
-------------------------------------------------------
| 1 | title1 | desc1 | 100 |
| 2 | title2 | desc2 | 100 |
| 3 | title3 | desc3 | 100 |
| 4 | title4 | desc4 | 100 |
| 5 | title5 | desc5 | 100 |
| 6 | title6 | desc6 | 100 |
Run Code Online (Sandbox Code Playgroud)
select * from SectionMembers;
| SectionMembers_id | section_id | status_code | …Run Code Online (Sandbox Code Playgroud) 我冒着手掌到额头的风险,但我无法弄清楚如何使用Rails的ActiveRecord糖来做到这一点.
我有一个tickets表有两列(submitter_id和assignee_id),每列应该从users表中引用不同的用户(特别是表中的id列users).我希望能够做类似的事情ticket.submitter.name并ticket.assignee.email使用ActiveRecord的关联.提交者和受让人只是不同关联名称下的用户对象.
我发现的唯一与我正在做的事情接近的是使用多态关联,但最后我很确定它并不是我真正需要的.我不会有多种类型,提交者和受让人都是用户,很可能是两个不同的用户.
任何帮助都会很棒.谢谢!
ruby activerecord ruby-on-rails associations multiple-tables
我正在学习ASP.NET MVC 3并尝试使用单个表单创建一个View,该表单由多个由外键链接在一起的模型组成.最终目标是将单个表单插入到所有数据库表中.
问题是我无法弄清楚为什么当我右键单击创建视图时,表单不会在cshtml文件中自动生成.自动生成的代码有很多帮助,因为我有许多链接在一起的表,以及我必须验证和插入的许多字段.如果无法自动生成表单,那么最有效/优雅的方法是什么?
这是我所拥有的简化.
模型:
class Customer
{
[Key]
public UInt64 CustomerId { get; set; }
[Required(ErrorMessage = "Name is required.")]
[Display(Name = "Customer Name")]
[MaxLength(50)]
public string FullName { get; set; }
}
class CustomerAdditionalDetails1
{
[ForeignKey("Customer")]
public UInt64 CustomerId { get; set; }
[Required(ErrorMessage = "This info is required.")]
[Display(Name = "Customer Information")]
[MaxLength(50)]
public string SomeInfo { get; set; }
}
class CustomerAdditionalDetails2
{ // same foreign key as CustomerAddtionalDetails1, but with different properties
}
class …Run Code Online (Sandbox Code Playgroud) 我必须相对于两个表之间的相同时间来扼杀结果,但是时间戳因为它们的记录方式而有所不同.我想获得类似于示例1的结果,但我只获得带星号的值,如示例2所示.从比较中删除secods或选择与最接近的DATETIME值对应的值的最佳方法是什么?
目前我正在使用此查询:
SELECT Table1.TimeSTamp1, Table1.Param1, Table2.TimeStamp2, Table2.Param2
FROM Table1, Table2
WHERE ... conditions for the other parameters of Table1 and Table2...
AND Table1.TimeSTamp1 = Table2.TimeStamp2
Run Code Online (Sandbox Code Playgroud)
我们热烈欢迎任何有关最佳做法的建议.
例1
TimeStamp1 ¦ Param1 ¦ TimeStamp2 ¦ Param2
2011-01-01 00:00:35 ¦ 1 ¦ 2011-01-01 00:00:35 ¦ a *
2011-01-01 00:01:35 ¦ 2 ¦ 2011-01-01 00:01:35 ¦ b
2011-01-01 00:02:37 ¦ 3 ¦ 2011-01-01 00:02:35 ¦ c
2011-01-01 00:03:31 ¦ 4 ¦ 2011-01-01 00:03:35 ¦ d
2011-01-01 00:04:32 ¦ 5 ¦ …Run Code Online (Sandbox Code Playgroud) multiple-tables ×10
mysql ×4
sql ×3
activerecord ×1
asp.net-mvc ×1
associations ×1
database ×1
datetime ×1
forms ×1
group-by ×1
join ×1
minimum ×1
pipeline ×1
postgresql ×1
ruby ×1
scrapy ×1
sql-delete ×1
sql-server ×1
sql-update ×1
subquery ×1
tsvector ×1
where ×1