建立
因此,一旦您决定使用STI(单表继承),我发现这种情况相当普遍.
你有一些基本类型与各种子类型.
在数据库中建模有两种主要方法:
虽然STI存在一些问题,但我确实喜欢它如何设法减少你必须加入的连接数,以及像Rails这样的框架中的一些支持,但是我遇到了一个关于如何关联的问题子类特定的表.
例如:
使用CTI,这些关系是微不足道的 - 只需在相关表上打一个外键即可完成:
ALTER TABLE advertisements
ADD FOREIGN KEY (seller_id) REFERENCES sellers (id)
Run Code Online (Sandbox Code Playgroud)
但是对于STI,类似的事情不会捕获子类型限制.
ALTER TABLE advertisements
ADD FOREIGN KEY (seller_id) REFERENCES members (id)
Run Code Online (Sandbox Code Playgroud)
我希望看到的是:
* Does not work in most (all?) databases *
ALTER TABLE advertisements
ADD FOREIGN KEY (seller_id, 'seller') REFERENCES members (id, type)
Run Code Online (Sandbox Code Playgroud)
我能找到的只是一个脏的黑客,需要在相关的表中添加一个计算列:
ALTER TABLE advertisements
ADD seller_type VARCHAR(20) NOT NULL …Run Code Online (Sandbox Code Playgroud) 所以,这对我来说是一个新的.我的Paypal IPN已经工作了一段时间,并且今天开始出现错误.
在回发期间使用PayPal进行验证(添加cmd = _notify-validate),PayPal响应者说"不,这不是来自我".这个特定条目唯一奇怪的是(我相信)用户指定地址的方式:
123地址街
#789
其他一切似乎都很正常,IPN处理程序正在非常愉快地处理其他通知.
有人见过这样的事吗?