Хранение статического (класса) атрибута в реляционной базе данных - PullRequest
1 голос
/ 19 декабря 2008

Предположим, вы храните экземпляры класса в реляционной таблице. Как бы вы сохранили статический атрибут этого класса? Например:

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? 1008 *

Ответы [ 2 ]

2 голосов
/ 19 декабря 2008

Поскольку статические переменные имеют смысл для класса, но не на уровне экземпляра, он не может войти в таблицу, в которой есть переменные экземпляра. В создаваемой вами таблице может быть несколько символов имени пользователя и соответствующие пароли_хэшей, но добавление common_homepage_content в каждую запись будет дублировать данные. Вы можете поместить common_homepage_content в отдельную таблицу и иметь ссылку на нее из каждой вашей записи в первой таблице.

1 голос
/ 19 декабря 2008

Ну, если переменная, которую вы хотите сохранить, это просто static, я должен предположить, что будет много пользователей (WebSiteUser) с одинаковыми $common_homepage_content. В этом случае вам следует создать новую таблицу в БД только для этого атрибута, поскольку это отношение 1-> N.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...