![]() |
1
1
你的设计是可行的,我和其他人一样喜欢规范化,但你真的必须在某个地方找到平衡点。所以首先,我认为你是对的,拥有像address1、address2、address3等字段……是不好的做法。如果你打算处理来自不同国家的许多不同类型的邮寄地址,那么抽象出各种地址类型可能是有意义的。 想想你想从系统中获取的数据——例如,有人会询问某个州或省的所有客户吗?那样的话,你的设计会很痛苦。 另一件要记住的事情是,数据库模式更改虽然有时会很痛苦,但并不是世界上最糟糕的事情。沿着这条路走到它的逻辑极限,你最终会得到一个巨大的表,其中包含“key”和“value”等字段,每个查询中都有数千个自连接。 祝你好运,找到正确的平衡点! |
![]() |
2
1
听起来你有一把非常好的锤子(即你的SQL数据库),你正试图用它制作另一把锤子(一种定义SQL模式的元语言)。 在您走这条路之前,市场上有许多产品旨在将客户详细信息存储在SQL数据库中。最好是直接购买现成的产品并与之集成。然后,你所有的担忧都会被其他人解决,你可以专注于你的特定商业案例。 编辑:一个允许您添加自定义联系人字段的软件包示例是 SugarCRM -它是一种商业产品,您可以在购买时访问源代码。我相信还有更多,但这是目前唯一想到的。 |
![]() |
3
0
这不是一篇信息量很大的帖子;你看过vCard用户是如何处理同样的问题的吗?此外,要小心过度设计,你最终可能会 N3 . |
![]() |
4
0
第一:务实地说,这取决于你想对数据做什么。根据我的经验,99%的地址数据只被用作打印在信件上的字符串。如果你是这样的话,那么你应该停止担心,把它存储为字符串。当然,如果你正在用它做更深入的工作,那么它就不会那么容易了。 除此之外。.. 我喜欢你的思维方式。我也做过类似的事情(尽管不是用地址)来处理动态模式。我遇到的问题是(正如您所指出的)提取内容的SQL变得复杂。另一个问题是,这种灵活性可能会导致意大利面条数据,就像你得到意大利面条代码一样。也就是说,表中内容的含义可能会变得模糊,因为你只能通过查看访问它的代码来理解它。 所以,你必须决定的是,你准备在哪里接受复杂性,以及你能最好地处理什么样的复杂性。如果你不介意复杂的SQL,那么就继续构建你的动态模式。如果你介意复杂的SQL,那么要么构建静态表(每种地址类型一个表),要么接受你不会有如此优雅的数据结构。 所以,简短的回答是:你必须称呼它。 |
|
user29759326 · 如何返回递归函数中的最后一个值? 4 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 4 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 4 月前 |
![]() |
rudraraj · java中未声明最终变量 5 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 5 月前 |