关系型数据库, 遇到一列引用多个可能表主键的情况, 是拆分多列? 是合并可能得多个表? 怎么用上外键限制?
1
mm163 2022-07-14 19:23:05 +08:00
只要能方便判断引用哪个表,就没必要改吧。
外键限制更没必要。 |
2
golangLover 2022-07-14 19:29:30 +08:00 via Android
hibernate 继承映射
|
3
ca1123 OP @golangLover 相当于给多个表做了一个父类?
|
5
golangLover 2022-07-14 22:50:29 +08:00
@ca1123 对的。好像其中一种还能自动把内容保存在同一个表之中,应该就是你想要的那种情况。
但是我上一次尝试的时候没有成功,但没有时间慢慢去试了,所以就放下了。如果你试验成功,请分享一下。谢谢。 |
6
ca1123 OP @golangLover 面相对象的范式本身就挺关系型的, 这个同构是怎么来的... 我其实不太懂 hibernate... 我写 clojure 的. 我最后选择直接把父类记成 entity 了, 把几个表合并了.
|
7
golangLover 2022-07-15 09:15:56 +08:00 via Android
@ca1123 其实就是用一个表来储存,然后用 type 字段来区分指向不同的表。里面可能有个 ref id ,用 type 和 ref id 来找到实际的关联的表和行。hibernate 继承映射可以自动处理这东西,映射出来的几个 dao 看起来属于不同表,但他会自动处理
|
8
bthulu 2022-07-15 09:42:49 +08:00
efcore 可以自动处理这些事情的, 不用你操心
|
9
ca1123 OP @golangLover 啊哈, 和我手工的做法差不多, 我也是用了 type, 看来我虽然笨, 但是没弄错.
|
12
bthulu 2022-07-15 10:27:29 +08:00
|