2012-01-12 54 views
2

想象一下,您有一个网站,其中有几个下拉菜单是从后端数据库填充的。目标是将这些值存储在数据库中,并在呈现表单时检索它们。存储下拉值,什么是好方法

我见过用两种方法:

每个列表类型

1)一个表:

profession_type 
|id|value| 

hobby_type 
|id|value| 

2)一个表的所有查找值:

|id|type   |value| 
|0 |profession_type|value| 
|1 |profession_type|value| 
|2 |profession_type|value| 
|3 |hobby_type  |value| 
|4 |hobby_type  |value| 
|5 |hobby_type  |value| 

是否有客观的优点,其中任何一个。 #2似乎更通用(你可以从表中选择一种类型来填充特定的下拉列表),但这个表格往往比如果你使用#1大得多。另外,如果使用#2,则所有外键都指向同一个巨型表。这似乎不是什么大问题,但在我看来,这种方法看起来更加复杂。

回答

1

我会去#2。您可以检索和缓存所有信息,即使添加新类型,也不需要更改数据库或检索逻辑。

如果您正在添加和更改表格,您需要触摸数据库模式以适应将来的所有更改,并更改新表格的检索代码。

此外,您对桌子大小的担忧可能是没有根据的。除非你有数百万行,否则会没事的。我想象着几百或几千行?数据库可以轻松处理。

相关问题