我正在寻找一种存储和检索用户输入数据的解决方案作为下拉列表。
用户希望从包含品种值的现有下拉列表开始。
品种选择列表
<select>
<option value="0">select</option>
<option value="1">Afghan Hound</option>
<option value="2">Airedale Terrier</option>
<option value="3">American Bulldog</option>
<option value="4">Belgian Malinois</option>
</select>
存在品种表
|breed_id| breed_title |
---------------------------
| 1 | Afghan Hound |
| 2 |Airedale Terrier|
| 3 |American Bulldog|
| 4 |Belgian Malinois|
breed_id值将与宠物值一起保存
|pet_id| pet_name | pet_sex |breed_id|
--------------------------------------
| 1 | 'Foo Foo'| 'M' | 2 |
| 2 | 'Sparky' | 'f' | 4 |
| 3 | 'Spot' | 'M' | 1 |
因为有很多不同类型的品种,并且因为有可能输入错误的品种类型 - 用户希望能够添加,编辑和删除品种类型。
我可以看到我可以在品种表中编辑和添加品种类型。但是如果用户删除了一个品种,那就说品种#2:
|breed_id| breed_title |
---------------------------
| 1 | Afghan Hound |
| 3 |American Bulldog|
| 4 |Belgian Malinois|
该品种的宠物协会遗失了:
|pet_id| pet_name | pet_sex |breed_id|
--------------------------------------
| 1 | 'Foo Foo'| 'M' | (2) |<<<<<<<
| 2 | 'Sparky' | 'f' | 4 |
| 3 | 'Spot' | 'M' | 1 |
如何处理已从品种表中删除了品种名称的宠物之间的关联?
下次给宠物打电话,我尝试填充品种选择列表 - 品种#2消失了。我现在该如何处理宠物品种?我现在如何填充我的下拉列表?
我可以想出几种方法来解决这个问题 - 但我不确定正确的解决方案 - 还是最佳实践。
我意识到可能有更多的逻辑或数据输入方法,解决方案的类型。无论解决方案是什么 - 我只想知道专业人士如何处理这类事情。
谢谢:)
此致
答案 0 :(得分:1)
如何处理引用已删除品种的狗将取决于品种需要更改的原因。
每个不同的原因都会产生不同的结果,因为他们正在努力实现不同的目标。一些是:
我会为每个案例建议以下行为
重命名只需更新现有品种表,能够做到这一点是首先规范品种数据的主要动机之一。
合并,如果您决定'阿富汗猎犬','Kuchi Hound'实际上是同一品种,那么你首先会改变引用'阿富汗猎犬'的所有狗,而不是引用'Kuchi Hound'然后你可以删除'阿富汗猎犬'品种,而不必担心悬挂引物。
删除,创建一个品种'Yo Mama',如果您认为此类品种的狗也不需要,那么你可以先删除所有引用'Yo Mama'然后品种的狗。如果你想养狗,我建议你创建一个'未知'品种类型,或者让品种 NULLable ,并设置所有的品种在删除品种之前,Yo Mama'将其设为NULL。
无论哪种方式,这些结果将取决于您为特定系统所需的行为类型,但我希望这可以让您了解一些常见的迁移类型。