我理解CHAR和VARCHAR之间的区别,一个是固定长度,另一个是可变长度,如果一行中的所有字段都是固定长度,表通常会表现得更好.
但是,我不清楚的是,如果我给VARCHAR一个长度,例如VARCHAR(500),这会将行保留为固定长度吗?
对于上下文,我有50列的干净表,大多数是TINYINT,但我需要在这个表中有两列作为VARCHAR,因为它们每个最多需要存储500个字符.确切的长度取决于用户输入,因此未知.
作为额外的限定,我真的不想将这些VARCHAR字段放入单独的引用表中,因为它会产生不必要的连接,并且不能非常有效地符合预期的查询模式.
任何帮助,将不胜感激.谢谢.
是否有支持或反对设置某些字段为理由,NULL
或NOT NULL
从主/外键字段在MySQL表,分开?
我之前遇到过一些看起来很简单的东西,但让我再次摸不着头脑.我有一个用户表:
user_id (PK) | username| email | something
Run Code Online (Sandbox Code Playgroud)
...以及当一个用户查看另一个用户时"视图"的表格:
view_id (PK) | viewer_id | viewed_id | view_date
Run Code Online (Sandbox Code Playgroud)
"viewer_id"和"seen_id"都是user_ids,允许我分别搜索用户是查看者或正在查看的用户的实例.
我最初认为这两个列都是外键,但是我在schema.yml文件中创建了表(我使用的是Doctrine 1.2)并指定了两个独立的外部关系(每列一个),看来Doctrine只需要考虑到这两个表之间首先列出的外来关系(user_id> viewer_id).
现在让我感到困惑的是,这是正确的MySQL行为,Doctrine中的问题,还是我接近这个问题的方式有问题,或者没什么可担心的!一个表中是否有两个单独的外键映射到另一个表中的同一列?它是否合乎逻辑,因为JOIN仍然允许我通过user_id访问"视图"?我弄错了吗?
谢谢你的时间.
编辑 - 模式文件:
User:
relations:
View: {class: View, local: user_id, foreign: viewer_id, type: many, foreignType: one, alias: View, foreignAlias: User}
View: {class: View, local: user_id, foreign: viewed_id, type: many, foreignType: one, alias: View, foreignAlias: User}
... only difference is viewer_id/viewed_id
Run Code Online (Sandbox Code Playgroud) 我想知道是否有可能在一个动作中从view.yml获取样式表的名称,理想情况下使用如下简单的东西:
sfConfig::get('......');
Run Code Online (Sandbox Code Playgroud)
我想访问view.yml中的现有声明,而不是硬编码或复制它,如app.yml.
谢谢.
为什么在下面的PHP代码中反向完成布尔值评估,而不是在结尾处放置"false"?
while (false !== ($obj = readdir($dh))) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
(来自http://php.net/manual/en/function.unlink.php中的一个用户示例)
我已经看到了在其他地方编写评估的方式,但从未真正理解为什么要这样做.我从未学过计算机科学,所以这可能是一个真正的问题.
我需要在其值已知时获取select(#Dropdown)的名称,但似乎无法使语法正确.这是一个例子:
$(document).ready(function()
{
var countrycode = '55';
var name = $("#Dropdown[value=countrycode]").text(); // fails here
if(name == 'Germany')
{..... etc
Run Code Online (Sandbox Code Playgroud)
当我能够使用"this"时,我可以在不同的上下文中按照以下方式工作:
var name = $(this[value=countrycode]).text();
Run Code Online (Sandbox Code Playgroud)
...但是在第一个例子中没有.
任何人?谢谢.
我有一个带有复选框小部件的表单类:
$this->setWidgets(array(
'status' => new sfWidgetFormInputCheckbox(array('value_attribute_value' => 1)),
// various other widgets
));
Run Code Online (Sandbox Code Playgroud)
有没有办法将此复选框设置为从表单类中取消选中(默认情况下已选中)?我似乎无法得到任何工作.我在Google上发现了一些可能是Symfony错误的东西,但是我还是拒绝相信它.
从动作中设置它可以正常工作:
$this->form->setDefault('status', false);
Run Code Online (Sandbox Code Playgroud)
......但我不想在那里拥有它.
我有一个FancyBox 2.1.5,它使用叠加"closeClick:true",这意味着FancyBox将在任何地方点击叠加时关闭.我正在以各种方式动态更新FancyBox内容,并希望能够在某种情况下将覆盖closeClick行为更改为"false".
有没有办法以这种方式动态更新FancyBox选项?这种行为的改变不会与任何就绪事件/回调相关,而是由用户启动的.
我有以下类型的SQL:
UPDATE photo AS f
LEFT JOIN car AS c
ON f.car_id=c.car_id
SET f.photo_status=1
, c.photo_count=c.photo_count+1
WHERE f.photo_id IN ($ids)
Run Code Online (Sandbox Code Playgroud)
基本上,两个表(car
&photo
)是相关的.$ ids中的列表包含唯一的照片ID,例如(34,87,98,12).通过查询,我将该列表中每张照片的状态设置为表格中的"1" photo
,同时car
在手边的桌子中增加照片计数.
它有效,但有一个障碍:因为列表可以包含多个与同一辆汽车相关的照片ID,所以照片计数只会增加一次.如果列表中有10张照片与同一辆车相关联,则photo_count将变为1 ....而我想将其增加到10.
有没有办法通过连接单独为每张照片进行增量,而不是MySQL为我过度思考?
我希望上述内容有道理.谢谢.
我想知道是否有人知道是否可以在Symfony 1.4 + Doctrine 1.2中为一个路由规则分配多个静态URL.
我所追求的是......
my_routing_rule:
url: {/first-url/, /second-url/, /third-url/}
param: {module: mymodule, action: myaction}
Run Code Online (Sandbox Code Playgroud)
URL是静态的,:something
在这种情况下我不能使用变量.
mysql ×4
php ×4
symfony1 ×3
database ×2
doctrine ×2
jquery ×2
action ×1
boolean ×1
char ×1
checkbox ×1
coding-style ×1
evaluation ×1
fancybox ×1
fancybox-2 ×1
foreign-keys ×1
forms ×1
javascript ×1
join ×1
schema ×1
select ×1
url-routing ×1
varchar ×1
view ×1
where-clause ×1