【问题标题】:DB storage of values值的 DB 存储
【发布时间】:2011-08-30 03:19:23
【问题描述】:

我只是想获得不同人的意见,因为出于某种原因,我没有在正确的地方寻找,但大多数人使用的是什么,或者更好的是,在数据库中存储一些东西最被接受的方法是有效值或无效值。我正在考虑有一个用于状态的数据库表,第一个是活动的,另一个是非活动的,然后我在创建新的内容页面或其他东西时有一个表单,并且有一个活动(1)或非活动值的选择下拉列表( 2) 并将 1 或 2 存储为该内容页面的 status_id。

这是最好的方法还是有更好的方法?

【问题讨论】:

    标签: php mysql database forms database-design


    【解决方案1】:

    我通常只使用布尔值。 0 为非活动状态,1 为活动状态。

    【讨论】:

    • 你认为我应该有一个单独的状态表并有一个下拉菜单,还是你认为有更好的方法?
    • 这取决于架构。对于选项表之类的东西,我只有一个“状态”列,然后你可以遍历结果集并使用 foreach(结果集中的行){ if(status = 1) { do stuff } }
    【解决方案2】:

    这取决于您使用的数据库及其支持的数据类型。如果它具有 Boolean 值的内置类型,我将使用它,否则我将使用带有 check constraintchar(1) 来检查允许的值(0/1n/ y),因为它比任何其他类型都快,而且可以胜任。

    如果您有多个布尔标志(相关但不是必需的)并且不需要在每个标志的基础上支持 NULL(这是第三种状态),我会选择带有位的 numeric 列如果您的数据库支持,则标记(1=true0=false,位 1 用于标记 1,位 2 用于第二个标记,依此类推)。
    Mysql对位操作的支持非常好,见here

    【讨论】:

      【解决方案3】:

      你可以使用 boolean 和 enum('Active','Inactive') 来做同样的事情

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-22
        • 2011-04-15
        • 1970-01-01
        • 2022-01-15
        • 2021-12-31
        • 1970-01-01
        • 2019-06-14
        • 2022-06-23
        相关资源
        最近更新 更多