数据库中的字段创建时的一些问题,一些常见的字段。

Posted kobedu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中的字段创建时的一些问题,一些常见的字段。相关的知识,希望对你有一定的参考价值。

数据库中常见的字段的设计

IP地址的字段设置

设计 IP 地址字段时,可以使用适当的数据类型来存储 IP 地址。以下是几种常见的数据类型选项:

  1. 字符串类型(VARCHAR 或 CHAR):IP 地址可以存储为字符串类型,例如使用 VARCHAR(15) 或 CHAR(15)。IPv4 地址的格式为 xxx.xxx.xxx.xxx(例如:192.168.0.1),长度为 15 个字符。IPv6 地址的格式为 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx(例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334),长度可能更长。

  2. 无符号整数类型(UNSIGNED INT 或 BIGINT):可以使用无符号整数类型来存储 IP 地址的数值表示。IPv4 地址可以使用 UNSIGNED INT,而 IPv6 地址可能需要使用更大的数据类型,如 BIGINT。

  3. 二进制类型(BINARY 或 VARBINARY):IP 地址可以以二进制形式存储,例如使用 BINARY(4) 或 VARBINARY(16)。IPv4 地址需要 4 个字节的二进制存储,IPv6 地址需要 16 个字节的二进制存储。

需要根据你的系统需求和实际情况选择合适的数据类型。如果你只需要存储和展示 IP 地址,字符串类型是一个常见的选择。如果你需要进行 IP 地址的比较、计算或其他操作,无符号整数类型或二进制类型可能更适合。另外,如果你的系统同时支持 IPv4 和 IPv6 地址,你可能需要考虑使用更大的数据类型来存储 IPv6 地址。

无论选择哪种数据类型,建议编写相应的代码来验证和处理用户提供的 IP 地址,以确保其格式正确性和合法性。

在实际的开发中最常用的情况为:使用字符串存储IP地址

在实际开发中,更常见和建议的方式是使用字符串类型来存储 IP 地址。

使用字符串类型(如 VARCHAR 或 CHAR)存储 IP 地址具有以下优点:

  1. 灵活性:字符串类型可以存储 IPv4 和 IPv6 地址,且长度适应不同的 IP 地址格式。无论是短的 IPv4 地址还是较长的 IPv6 地址,字符串类型都可以容纳,并且可以直接在数据库中显示和处理。

  2. 可读性:将 IP 地址存储为字符串类型可以更容易地进行人类可读的展示和处理。IP 地址作为字符串,可以直接进行搜索、排序和比较操作,而不需要进行转换。

  3. 兼容性:字符串类型可以与各种编程语言和库进行良好的兼容性。几乎所有的编程语言都提供了字符串处理的功能,这使得使用字符串类型存储 IP 地址更加方便。

  4. 简单性:使用字符串类型存储 IP 地址不需要进行复杂的数值转换或二进制操作。这简化了开发过程并减少了出错的可能性。

总的来说,使用字符串类型存储 IP 地址是一个简单、灵活且常见的做法,适用于大多数应用场景。它提供了良好的可读性和兼容性,并且能够满足 IP 地址的存储、展示和处理需求。

创建新行时的剑道网格,使用现有行中的值自动填充字段

【中文标题】创建新行时的剑道网格,使用现有行中的值自动填充字段【英文标题】:Kendo grid when create a new row, auto populate fields with values from existing row 【发布时间】:2019-09-12 03:05:03 【问题描述】:

我有 5 列(剑道网格)从数据库中获取数据。我想要做的是,每当我添加新行时,我希望某些列能够动态地自动填充。

例如,我有 Name、country、state、value 和 effDate 列。

姓名、国家/地区、州字段为editable = false。所以用户只能编辑 value 和 effDate 字段。

如果 Name = John,Country = USA,State = Alaska,Value = 123,effDate = 9/11/2019,当我添加新行时,我希望 Name、country、state 字段填充 Name - John ,国家 - 美国,州 - 阿拉斯加。 Value 和 effDate 只能为空,以便用户可以添加新数据。

我目前正在使用模板。 我尝试使用此方法填充国家/地区列,但没有显示任何内容。

template: "#= Country #"

有没有办法在创建新行时动态预填充?

我的部分网格代码模型:


    id: "NameKey",
    HouseKey: houseKey,
    fields: 
        Name:  editable: false ,
        Country:  editable: false ,
        State:  editable: false ,
        Value: 
            validation: 
                pattern: 
                    value: "^[0-9.]0,10$",
                    message: "Only numbers"
                ,
                required: 
                    message: "Value is required"
                ,
            
        ,
        EffDate:  validation:  required: true , type: "date", format: "0:MM/dd/yyyy" ,
    ,

...

部分列

columns: [
     field: "Name", template: "#=(Name== '') ? 'Fields are auto populated' : Name#", title: "Name", width: 250 ,
     field: "Country", template: "#=(Country== '') ? 'Fields are auto populated' : Countr#", title: "Country", width: 210 ,
     field: "State", template: "#=(StateName == '') ? 'Fields are auto populated' : State#", title:"State", width: 200 ,
     field: "Value", title:"Value", width: 200 ,
    
        field: "EffDate", title;"Date", template: "#= kendo.toString(kendo.parseDate(data.EffDate, 'yyyy-MM-dd'), 'MM/dd/yyyy') #", width: 140
    ,
],

【问题讨论】:

【参考方案1】:

您可以使用beforeEdit 事件来实现该行为。每当用户尝试在网格中编辑创建一个新条目时,都会调用该事件。它接收当前模型,您可以根据需要进行更改:

beforeEdit: function(e) 
    let model = e.model;

    if (model.isNew()) 
        model.Name = "John";
        model.Country = "USA";
        model.State = "Alaska";
    

Demo

【讨论】:

如果我想让它动态工作怎么办?我有很多不同名称的数据。可以是 John、Matt 等任何人。 @davis 只需将它们分配给模型,无论它们来自哪里。

以上是关于数据库中的字段创建时的一些问题,一些常见的字段。的主要内容,如果未能解决你的问题,请参考以下文章

Django Admin中的动态只读字段

一个工具类搞定 CRUD 的创建人修改人时间等字段赋值!

一个工具类搞定 CRUD 的创建人修改人时间等字段赋值!

django forms定义时的一些小技巧

Redux - 异步 - 输入字段更改时的 POST 状态

pytorch入门与实战---torchtext的应用