小编Mit*_*ran的帖子

我应该设计一个主键为varchar或int的表吗?

我知道这是主观的,但我想知道人们的意见,并希望在设计sql server表结构时能够应用一些最佳实践.

我个人认为在固定(最大)长度varchar上键入一个表是禁止的,因为它意味着必须在使用它作为外键的任何其他表中传播相同的固定长度.使用a int,将避免必须在整个板上应用相同的长度,这必然导致人为错误,即1个表具有varchar (10),而另一个表varchar (20).

这听起来像是最初设置的噩梦,而且意味着将来维护表格也很麻烦.例如,假设keyed varchar列突然变成12个字符而不是10个字符.你现在必须去更新所有其他表,这可能是一个巨大的任务多年.

我错了吗?我错过了什么吗?我想知道其他人对此的看法,以及坚持使用int作为主键是避免维护噩梦的最佳方法.

sql sql-server database-design

20
推荐指数
2
解决办法
1万
查看次数

MySQL查询用下划线替换列中的空格

我有一个MySQL数据库表'photos',列'filename'.我需要用下划线替换文件名列值中的空格.是否可以使用单个/多个查询?如果是这样的话?

mysql replace space

20
推荐指数
2
解决办法
5万
查看次数

Postgresql更新时的当前时间戳

什么是postgres相当于下面的mysql代码

CREATE TABLE t1 (
  created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
CREATE TABLE t2 (
  created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
Run Code Online (Sandbox Code Playgroud)

根据Alex Brasetvik在下面的回答,似乎我应该使用触发器,我的问题是我有一些表t1,t2 ...有创建和修改的字段,是否可以编写一个通用程序?

--update几乎准备好了

CREATE FUNCTION update_timestamp() RETURNS trigger AS $update_timestamp$
    BEGIN
        NEW.modified := current_timestamp;
        RETURN NEW;
    END;
$update_timestamp$ LANGUAGE plpgsql;

CREATE TRIGGER update_timestamp BEFORE INSERT OR UPDATE ON t1
    FOR EACH ROW EXECUTE PROCEDURE update_timestamp();
CREATE TRIGGER update_timestamp BEFORE INSERT OR UPDATE ON t2
    FOR EACH …
Run Code Online (Sandbox Code Playgroud)

mysql postgresql

19
推荐指数
3
解决办法
2万
查看次数

PHP删除数组的第一个索引并重新索引

我有一个像Array这样的数组

(
    [0] => A
    [2] => B
    [4] => C
    [6] => D
)
Run Code Online (Sandbox Code Playgroud)

我想删除第一个元素,然后重新索引数组以获取输出

(
    [0] => B
    [1] => C
    [2] => D
)
Run Code Online (Sandbox Code Playgroud)

我需要使用哪个PHP函数?


更新

输入数组是

Array
(
    [0] => Array
        (
            [0] => Some Unwanted text
            [1] => You crazyy
        )

    [2] => Array
        (
            [0] => My belowed text
            [1] => You crazyy
        )

    [10] => Array
        (
            [0] => My loved quote
            [1] => You crazyy
        )

)
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的

Array
(
    [0] => …
Run Code Online (Sandbox Code Playgroud)

php arrays sorting filter

19
推荐指数
2
解决办法
4万
查看次数

Android电池使用情况分析

有没有办法在开发环境或实时分析应用程序的电池使用情况? BatteryManager似乎没有提供任何每个应用程序API

performance android

18
推荐指数
1
解决办法
1万
查看次数

Ruby/RoR - 计算数组中元素的出现次数

我是哈希

{1=>true, 7=>false, 6=>true, 4=>false}

或类似的数组

[1, true], [7, false], [6, true], [4, false]]

要么

[true, false, true, false].

如何true在阵列中找到s 的数量?

ruby arrays ruby-on-rails

17
推荐指数
2
解决办法
1万
查看次数

哪个Postgres数据库文件保存在ubuntu中?

如何在Ubuntu 10.04文件系统中找到保存Postgres 8.x数据库文件的位置?

postgresql ubuntu

16
推荐指数
2
解决办法
2万
查看次数

自定义ArrayAdapter中的Android getSystemService

我正在尝试编写一个自定义ArrayAdapter引用此处 我的代码是

package com.example.AndTest;

import java.util.ArrayList;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class CategoryAdapter extends ArrayAdapter<Category> {
    private ArrayList<Category> items;

    public CategoryAdapter(Context context, int textViewResourceId,
            ArrayList<Category> items) {
        super(context, textViewResourceId, items);
        this.items = items;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (v == null) {
            LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.list, null);
        }
        Category c = items.get(position);
        if (c != null) …
Run Code Online (Sandbox Code Playgroud)

android

16
推荐指数
1
解决办法
2万
查看次数

HTML缓存控件

以下3个元标记之间有什么区别?

<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="Expires" CONTENT="-1">
Run Code Online (Sandbox Code Playgroud)

我是否需要使用所有这些标签来避免浏览器缓存

html browser xhtml caching

15
推荐指数
1
解决办法
2万
查看次数

PostgreSQL ORDER BY问题 - 自然排序

ORDER BY在下表中遇到了Postgres 问题:

em_code  name
EM001    AAA
EM999    BBB
EM1000   CCC
Run Code Online (Sandbox Code Playgroud)

要向表中插入新记录,

  1. 我选择了最后一条记录 SELECT * FROM employees ORDER BY em_code DESC
  2. 从em_code中删除使用reg exp和存储的字母 ec_alpha
  3. 将重映射部分转换为整数 ec_num
  4. 增加一个 ec_num++
  5. 垫有足够zeors和前缀ec_alpha再次

em_code到达EM1000,上述算法失败.

第一步将返回EM999而不是EM1000,它将再次生成EM1000为新的em_code,打破了唯一键约束.

知道如何选择EM1000吗?

sql postgresql types natural-sort sql-order-by

14
推荐指数
5
解决办法
1万
查看次数