我正在重写一个注册应用程序,并开始考虑如何设计数据库结构。我需要该应用程序具有灵 active ,因为某些事件提供不同的内容。这是一个特定的:
每个事件都提供衬衫,但并非每个事件都提供相同的尺码。我想我应该有一个 Shirt_Size 表,其中包含所有可能的选项,然后在一个表单中创建一个新事件,他们可以只勾选他们想要的衬衫。我将在哪里存储该特定事件的特定尺寸子集?我需要查询它来填充用于注册事件的表单的下拉列表。
我想我可以为事件模型做某种逗号分隔的列,该列与 Shirt_Sizes 的值 ID 不同?但我一直在读到这样做是不好的,所以我不确定通常是如何处理的。谢谢!
最佳答案
您可以创建第三个表,其中包含 event_id 和shirt_size_id 列,并根据需要填充它。假设 event1 只有小号和中号衬衫,您将在表中添加两行。
id event_id shirt_size_id
1 1 1
2 1 2
如果第二个事件有小号、中号和大号衬衫,请向新表添加 3 行。
id event_id shirt_size_id
3 2 1
4 2 2
5 2 3
然后,当您查询数据以填充下拉列表时,您可以连接所有三个表。
关于mysql - 将定义选项的子集存储到另一个表列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20600723/