代码之家  ›  专栏  ›  技术社区  ›  Ivan Krechetov

在关系数据库中存储静态(类)属性

  •  1
  • Ivan Krechetov  · 技术社区  · 16 年前

    假设您将类的实例存储在关系表中。如何持久化该类的静态属性?例如:

    class WebSiteUser {
        private static $common_homepage_content;
        private $username;
        private $password_hash;
        ...
    }
    

    对应于:

    CREATE TABLE web_site_users
    (
      username character varying(100) NOT NULL,
      password_hash character varying(40) NOT NULL,
      ...
    

    在哪里 $common_homepage_content 那么去吧?

    2 回复  |  直到 15 年前
        1
  •  1
  •   bruno conde    16 年前

    好吧,如果您想要持久化的变量只是 static 我必须假设会有很多用户( WebSiteUser ) $common_homepage_content . 在这种情况下,应该在数据库中为该属性创建一个新表,因为它是1->n关系。

        2
  •  2
  •   Raminder    16 年前

    由于静态变量对类有意义,但在实例级别上没有意义,因此它不能进入具有实例变量的表中。在您正在创建的表中,可以有多个用户名字符和相应的密码哈希,但是在每个记录中放置常见的主页内容将是重复数据。您可以将公共主页内容放在单独的表中,并从第一个表中的每个记录中引用它。