我有一个包含数千家商店的数据表。一开始,我认为让商店对象拥有一个用于分组连锁店的parent_id
属性会是一个好主意。
在我的网站上,任何人都可以添加一个商店。没有添加“主存储”的例程。那么,如何选择主存储呢?
所以我必须找到另一种方法来对商店进行分组。
我在考虑建立一个单独的表,让连锁店获得一个组ID。
目标是,当您更改一个商店的描述时,您可以选择更新所有商店的描述。这也可以用一个单独的表来描述--但我已经有了一堆表,所以我不确定进一步规范化是否会有任何真正的好处。
我想听听你认为设计我的数据库以满足连锁店规模的最佳方法是什么。
发布于 2012-03-10 06:17:55
您可以向名为chain
的stores table
添加一个字段(例如)。此字段将包含一些值-整数。对于同一家连锁店,将有相同的值,如果只有一个连锁店(不是连锁店的一部分),则将值设置为0(零)。
举个例子:
名称|链
圣地亚哥披萨帽1
McDonalds好莱坞2
披萨帽伦敦1
我朋友的商店%0
McDonalds西班牙2
编辑:所以当编辑Pizza Hat San Diego的商店时,你的脚本将检查'chain‘值,如果它不同于'0’,你的脚本将更新所有‘chain’字段值为1的记录。
EDIT2:关于,用户应该如何添加?用户应该如何为新商店选择正确的ID?
我猜在stores
表中还有一个owner_id
字段,它是创建这个商店的成员的id。你能做的就是建议会员,当他试图添加一个新的商店时,基于他的“添加商店历史”的连锁店。
让我们再次使用上面的例子:
名称|所有者ID |链
圣地亚哥披萨帽| 32 |1
McDonalds好莱坞| 32 |2
披萨帽伦敦|32 |1
我朋友的商店|43| 0
西班牙McDonalds |32| 2
因此,如果ID为32的用户正在尝试添加一个新商店,您将向他展示一个dropbox,其中包含他拥有的任何一家连锁店:必胜客San-diego & McDonalds好莱坞,然后您将问他“您的新商店与...?”。
https://stackoverflow.com/questions/9641412
复制相似问题