数据库关系多对多
alt text http://produits-lemieux.com/database.jpg
这基本上是我的数据库结构
一种产品(比如说肥皂)将有许多零售销售尺寸
- 1 升
- 4 升
- 20 升
在我的“产品”数据库中,我将有肥皂项目(id #1) 在尺寸数据库中,我将有许多可用尺寸:
- 1升
- 4升
- 20升
如何不使用不同尺寸重复产品3次...我希望能够在数据库中所有可用尺寸的产品尺寸中添加复选框并检查是或否(布尔值)
得到的答案是完美的,但如何拥有这样的选项:
肥皂 [x] 1 升,[ ] 4 升,[x] 20 升
alt text http://produits-lemieux.com/database.jpg
This is basicly my database structure
one product (let say soap) will have many retail selling size
- 1 liter
- 4 liters
- 20 liters
In my "produit" database I will have the soap item (id #1)
In the size database i will have many size availible :
- 1liter
- 4liter
- 20liter
How not to duplicate the product 3 time with a different size... i like to be able to have check box in the product size of all the size available in the database and check if yes or no (boolean)
The answer a got is perfect, but how to have the option like that :
soap [x] 1 liter , [ ] 4 liter , [x] 20 liter
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我不确定我是否理解您的确切场景,但要创建多对多关系,您只需创建一个“关系表”,在其中存储要链接的两条记录的 id。
例子:
I'm not sure I understand your exact scenario, but to create a many-to-many relationship, you simply create a "relationship table", in which you store id's for the two records you want to link.
Example:
多对多关系几乎总是使用中间表来建模。对于您的示例,
Size
表将包含特定尺寸(例如 10 升),Product_Size
表创建一个Product
和Size配对。
A many-to-many relationship is almost always modeled using an intermediate table. For your example,
The
Size
table would contain particular sizes (say, 10 liter) and theProduct_Size
table creates aProduct
andSize
pairing.您将需要一个中介,或“加入”表
ProductSizes
......................
产品ID
SizeID
每种产品尺寸组合一条记录
You Will need an Intermediary, or "Join" Table
ProductSizes
.......................
ProductID
SizeID
One record for each product-size combination
根据答案,这里是建议的数据库表布局,对我来说看起来很复杂,但您确定这是执行此操作的方法,最好的解决方案吗?
替代文本 http://produits-lemieux.com/database2.jpg
Based on the answers, here is the database tables layout as proposed, it look complicated to me, but are you sure it is the way to do this, the BEST solution ?
alt text http://produits-lemieux.com/database2.jpg