【问题标题】:Database table design for dropdown list下拉列表的数据库表设计
【发布时间】:2019-12-15 17:50:56
【问题描述】:

我的 HTML 表单中有一些下拉列表,这些下拉列表是从 MySQL 数据库中填充的。这些下拉列表是完全独立的。我需要为每个下拉列表创建一个表吗?如果不是,我应该如何设计一个包含所有下拉列表项的单个表?如何设计一个好的数据库结构?

我不要求提供代码,因此我也没有示例代码。我只需要这样一个数据库的屏幕截图或一些如何操作的建议。

【问题讨论】:

  • 数据库并不是真正需要的。一个文本或 XML 文件就足够了。
  • 我希望用户也能够从列表中添加和删除项目。这就是为什么我要使用数据库。此外,我不确定如何处理文本、XML 和 HTML
  • 这是一个非常简单的 id 字段 a(autoincrement 和 twi columsn atleat 用于值和文本。这是最小值,如果您需要选项中的另一个属性,则在您添加的 css 文件中无法修复一列。使用 javascript,您可以将其写入文本文件并再次读取它。如果您想在表格中保存许多列表,您当然需要一列来区分它们
  • 看这个例子phppot.com/php/…
  • 我知道其他方法。我会那样做。

标签: html mysql drop-down-menu


【解决方案1】:

您只能创建具有以下结构的单个表,

CREATE TABLE MetaData (
    Id int,
    DropdownType varchar(255),
    YourDropdownValue1 varchar(255),
    YourDropdownValue2 varchar(255)
    ..
    ..
);

例如城市:-

insert into MetaData(DropdownType,YourDropdownValue1,YourDropdownValue2..) values('City','New York','NY')
insert into MetaData(DropdownType,YourDropdownValue1,YourDropdownValue2..) values('City','Paris','PR')

例如国家:-

insert into MetaData(DropdownType,YourDropdownValue1,YourDropdownValue2..) values('Country','America','AM')
insert into MetaData(DropdownType,YourDropdownValue1,YourDropdownValue2..) values('Country','India','IN')

注意:-
1) 将 ID 保留为自增主键,以便每次分配新值。
2) Column-2 称为下拉类型,以便您可以根据需要提及类型。

希望这篇文章对你有所帮助。

【讨论】:

  • 现在我可以看到有两行下拉类型为“城市”,城市的下拉值不同,还有两行下拉类型为“国家”,国家的下拉值不同。假设我想通过组合不同城市行中的所有值来显示一个城市下拉列表,并通过组合不同国家行中的所有值来显示一个国家下拉列表,我应该怎么做?
  • 您可以使用列名进行过滤,例如“从 DropdownType ='City' 和 YourDropdownValue1(cityname) ='xyz' 的元数据中选择 *
  • 我的意思是如何组合所有这些行以显示在一个下拉列表中?通过这种方式,City 作为下拉类型可能会有很多行。我需要的是在一个下拉列表中显示所有这些城市名称,在另一个下拉列表中显示所有这些国家/地区名称等。
  • 我明白了兄弟,为什么你不能写一个像 ,select * from metadata where DropdownType ='City' 这样的查询结果可以用于城市下拉列表,select * from metadata where DropdownType ='Country' 用于国家。这对你有意义吗?
  • 通过这样的查询,它会在下拉列表中只显示一个项目City或一个项目Country。它不会在下拉列表中获取任何城市名称或国家名称。
猜你喜欢
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多