小编Kev*_*ney的帖子

表模块与域模型

前几天我询问选择一种存储用户配置文件方法,并收到David Thomas Garcia的一个有趣的回复,建议我使用Table Module设计模式.看起来这可能是我想要的方向.我在Google上发现的所有内容似乎都是相当高级别的讨论,所以如果有人能指出我的某些例子,或者让我更好地了解所涉及的基本要素,那将是非常棒的.

database database-design design-patterns entity-attribute-value

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

选择存储用户配置文件的方法?

我正在为一个网站开发用户配置文件系统,并在思考什么是更好(可扩展)的方法.我想出了两个解决方案,我正在寻找任何输入或指向我可能错过的东西.

以下create table语句并不是可执行的,而只是用于了解所涉及的表的布局.

我最初的想法是这样的:

CREATE TABLE user(
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,

    user_email VARCHAR(320),

    user_joined DATATIME,
    user_last_seen DATATIME,

    user_name_first VARCHAR,
    user_name_last VARCHAR,

    user_name_alias VARCHAR,

    user_location_country VARCHAR,
    user_location_region VARCHAR,
    user_location_city VARCHAR

    # ...
);
Run Code Online (Sandbox Code Playgroud)

显然,这根本不是很可扩展,并且添加了令人讨厌的额外属性.一个优点是我可以快速搜索匹配特定属性集的用户.我已经做了一些环顾四周,这是一种非常常见的方法(例如Wordpress).

我的第二种方法(我正在玩的那种方法)更具可扩展性,但我对性能有点担心:

CREATE TABLE user(
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,

    user_email VARCHAR(320)
);

CREATE TABLE user_profile(
    user_id INT UNSIGNED NOT NULL,

    visibility ENUM('PRIVATE', 'PUBLIC'),

    name VARCHAR,
    value VARCHAR
);
Run Code Online (Sandbox Code Playgroud)

使用此方法,每个用户都有一组与之关联的键值对,这使得添加其他属性变得微不足道,以及在用户登录时加载用户配置文件.但是我丢失了第一种方法中的所有类型信息(例如,DATETIME现在存储为格式化字符串),因此一些搜索变得烦人.这确实让我可以更好地控制用户想要公开显示哪些属性.

混合方法会更好地让我平衡两种方法的优缺点吗?SO使用什么方法?还有其他方法可以解决这个问题吗?

扩展:使用混合方法将来自用户表的属性插入user_profile表以控制其对其他用户的可见性或者可能被视为额外开销是否有利?

database database-design entity-attribute-value

7
推荐指数
1
解决办法
2803
查看次数

问题重定向403禁止404找不到

我的.htaccess的相关部分看起来像这样:

Options -Indexes
<FilesMatch include>
    Order allow,deny
    Deny from all
</FilesMatch>
RedirectMatch 404 ^/include(/.*)$
Run Code Online (Sandbox Code Playgroud)

它产生了以下响应:

  • /包括403
  • / include/404
  • /include/config.inc 403

我可以通过查看我的模式来判断问题可能出现在(/.*)部分,但我尝试的所有内容都给出了相同的结果; 而不是一直得到404我得到一个404的404和其他一切的403.我正在使用的表达式有什么问题?或者,因为我必须为几个目录执行此操作,是否有一种全面的方法可以将所有403响应转换为404?

更新:我发现通过删除FileMatch我得到了更好的结果,所以我的.htaccess现在看起来像这样:

Options -Indexes
RedirectMatch 404 ^/include(/.*)?$ # Added dlamblin's first suggestion
Run Code Online (Sandbox Code Playgroud)

并生成以下响应:

  • /包括404
  • / include/404
  • /include/config.inc 403

更新:有趣的是,我发现以下产生不同的输出:

RedirectMatch 404 ^/include(/?|/.*)$
RedirectMatch 404 ^/template(/?|/.*)$
Run Code Online (Sandbox Code Playgroud)

模板模式适用于所有情况但是include仍然为include中的所有文件生成403(例如/include/config.inc)这可能是目录名称的问题而不是.htaccess文件本身的问题?

更新:访问/include/config.inc时,我的.htaccess中的以下内容与重定向冲突.

<FilesMatch config>
    Order allow,deny
    Deny from all
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

apache .htaccess mod-rewrite http-status-code-403 http-status-code-404

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

计算Neo4j中的原语

我一直在读通过的文件Neo4j的,它的成分,还没有遇到过的功能,让我查询的图形总数原语(节点,关系和属性).这个功能是否存在于某个地方,或者我是否必须编写遍历整个图表的代码?

java neo4j

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

PHP标头功能的替代品

我正在开发一个有很多样式表的网站,所有样式表都需要作为服务器端的PHP脚本来处理.我的.htaccess文件看起来像这样:

<FilesMatch "\.(css)$">
    ForceType application/x-httpd-php
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

这会导致一个小问题,因为http响应Content-Type字段的mime类型被设置为text/html而不是text/css.

显然我可以通过添加header('Content-Type: text/css')到我的所有文件来解决这个问题,但有更好的方法吗?

我可以在.htaccess文件中执行此操作吗?mod_mimemod_negotiation提供的指令似乎都不是我正在寻找的.

php apache .htaccess mime-types

4
推荐指数
1
解决办法
1010
查看次数

是否有关于URL可用性的安全假设?

我试图确定是否有办法检查可能的大型网址列表(> 1000000)的可用性,而无需向每个网址发送GET请求.

是否可以安全地假设如果http://www.example.com无法访问(如无法连接到服务器或域的DNS请求失败),或者我得到4XX或5XX响应,那么来自该域的任何内容也将无法访问(例如http://www.example.com/some/path/to/a/resource/named/whatever.jpg)?302响应(比如说what.jpg)是否足以使第一个假设无效?我认为子域名应该被视为不同的http://subdomain.example.comhttp://www.example.com可能不会指向同一个IP?

我似乎能够想到我提出的每个捷径的反例.我应该咬紧牙关并向每个URL发送GET请求吗?

url http

4
推荐指数
1
解决办法
181
查看次数