小编Spa*_*usA的帖子

PHP/MySQL OOP:从SQL加载复杂对象

所以我正在为房地产经纪人做一个项目.我的设计中有以下对象/ MySQL表:

Complexes
Units
Amenities
Pictures
Links
Documents
Events
Agents
Run Code Online (Sandbox Code Playgroud)

这些是上述对象之间的关系.

Complexes have a single Agent.
Complexes have multiple Units, Amenities, Pictures, Links, Documents, and Events.
Units have multiple Pictures, Links, and Documents.
Run Code Online (Sandbox Code Playgroud)

设施,图片,链接,文档和事件都在数据库中具有必要的外键,以指定它们属于哪个单元/复合体.

我需要将必要的对象从数据库加载到PHP中,以便我可以在我的项目中使用它们.

如果我尝试在1个查询中从表中选择所有数据,使用LEFT JOINS,我将获得每个唯一单元的至少(链接数)*(图片数)*(文档数)行.添加设施和事件,我会得到所有*设施*每个复杂的事件#...不确定我想尝试将其加载到PHP中的对象.

另一种可能性是每个复杂/单元,为链接,图片,文档,事件和便利设施执行1个单独的SQL语句

我的问题如下:

如果我正确索引我的所有表,那么为每个复杂/单元执行3-5个额外查询真的是一个坏主意吗?

如果没有,我怎样才能获得加载到PHP对象中所需的数据.理想情况下,我会为单位设置如下对象:

Unit Object
(
    [id]
    [mls_number]
    [type]
    [retail_price]
    [investor_price]
    [quantity]
    [beds]
    [baths]
    [square_feet]
    [description]
    [featured]
    [year_built]
    [has_garage]
    [stories]
    [other_features]
    [investor_notes]
    [tour_link]
    [complex] => Complex Object
        (
            [id]
            [name]
            [description]
            etc.
        )
    [agent] => Agent Object
        (
            [id]
            [first_name]
            [last_name]
            [email] …
Run Code Online (Sandbox Code Playgroud)

php mysql oop

8
推荐指数
1
解决办法
2247
查看次数

PHP继承和MySQL

所以我试图采用PHP的良好的面向对象编程技术.大多数(全部读完)我的项目都涉及MySQL数据库.我的直接问题涉及我需要开发的用户模型.

我目前的项目有代理商和潜在客户.代理商和潜在客户都是具有大量相同信息的用户.所以,显然,我想要一个类Agents和一个类Leads来扩展一个公共类Users.现在,我的问题如下:

如何最好地处理SQL来加载这些对象?我实例化代理或潜在客户时,我不想执行多个SQL语句.但是,逻辑告诉我,当用户构造函数被触发时,它应该执行一个SQL语句来加载代理和潜在客户之间的公共信息(用户名,密码,电子邮件,联系信息等).Logic还告诉我,当激活Agents或Leads构造函数时,我想执行SQL来加载Agents或Leads类的唯一数据....但是,逻辑也告诉我执行2是个坏主意每次我需要代理或潜在客户时的SQL语句(因为每个可能有数千个).

我已经尝试过搜索一般如何处理但没有成功的例子......也许我只是在寻找错误的东西?

php mysql inheritance

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

Arc diff在git commit上挂起

我正在努力为Phabricator工作一个良好的工作流程,最近对我们的测试项目进行了一些更改以解决一些问题.我做了几处修改但忘了将它们放在自己的功能分支中.所有这些更改都未提交给git.我继续创建了一个已创建的功能分支,以适用于我所做的更改并提交它们.我以为我可以切换到每个分支并arc diff为它们创建代码评论(我仍然认为我可以这样做).但是,当我arc diff在当前签出的分支上执行时,该命令永远不会完成.为了看看发生了什么,我跑了arc diff --trace.输出如下.正如你可以推测的那样,它通过提交消息规范(在我的情况下通过Notepad ++)然后完全死[26] git diff在线上(并且"死"我的意思是它挂起并且永远不会完成).

libphutil loaded from 'S:\web\_arcanist\libphutil\src'.
arcanist loaded from 'S:\web\_arcanist\arcanist\src'.
Working Copy: Reading .arcconfig from "S:\web\_apollo\andreas\bonfire3/.arcconfi
g".
Working Copy: Path "S:\web\_apollo\andreas\bonfire3" is part of `git` working co
py "S:\web\_apollo\andreas\bonfire3".
Working Copy: Project root is at "S:\web\_apollo\andreas\bonfire3".
>>> [0] <conduit> conduit.connect() <bytes = 445>
>>> [1] <http> http://phabricator.mydomain.com/api/conduit.connect
<<< [1] <http> 1,086,426 us
<<< [0] <conduit> 1,089,191 us
>>> [2] <exec> $ git diff --no-ext-diff --no-textconv --raw …
Run Code Online (Sandbox Code Playgroud)

git phabricator arcanist

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

标签 统计

mysql ×2

php ×2

arcanist ×1

git ×1

inheritance ×1

oop ×1

phabricator ×1