我是初级到中级的程序员,我正在尝试为某人重新设计一个MySQL数据库。它具有以下属性:
我试过研究这个但是找不到明确的答案。目前他是一张巨大的桌子。示例列是:
我想知道是否有更好的方法来使用数组作为条目或使用多个表来组织此表。有没有人有任何想法?或者这只是一个偏好问题?我也担心使用多个表的效率。
谢谢!
对评论的回复(更详细的解释):
这是原始表格的字段,我负责修改。这是一张大桌子:
id
BIGINT(9)NOT NULL, - 主键
state
TINYTEXT NULL, -
完整州名称county
TINYTEXT NULL, - 全县名称
place
TINYTEXT空, - 完整地方名称placetype
TINYINT(2)
NULL DEFAULT NULL, - 放置县,城市等。format
TINYINT(1)NULL DEFAULT NULL, - 不确定
multname
TINYINT(1)
NULL DEFAULT NULL, - 这个地方有多个名字
multcounty
TINYINT(1)NULL DEFAULT NULL, - 地点是否交叉
多个县
population
INT(8)NULL DEFAULT NULL, -
人口
offsunallstart
SMALLINT(4)NULL DEFAULT NULL, -
Off-Premsies(便利店,酒类商店等),周日,全部
酒类(包括酒类),开始时间(军事时间)
整数,小时和分钟过午夜)
offsunallend
SMALLINT(4)NULL DEFAULT NULL, - Off-Premises,Sunday,所有类型的
酒精,结束时间(军事时间整数,小时和分钟过去
午夜)
offsunbwstart
SMALLINT(4)NULL DEFAULT NULL, -
场外,周日,仅限啤酒和葡萄酒,开始时间为offsunbwend
SMALLINT(4)NULL DEFAULT NULL, - 场外,周日,啤酒和葡萄酒
only,结束时间
offmonallstart
SMALLINT(4)NULL DEFAULT NULL, -
周一,场外,所有类型的酒精,开始时间
offmonallend
SMALLINT(4)NULL DEFAULT NULL, - Off-Premises,Monday,
所有类型的酒精,结束时间
offmonbwstart
SMALLINT(4)NULL
DEFAULT NULL, - Off-Premises,Monday,Beer and Wine only,Start
时间
offmonbwend
SMALLINT(4)NULL DEFAULT NULL, - Off-Premises,
周一,仅限啤酒和葡萄酒,结束时间为offtueallstart
SMALLINT(4)
NULL DEFAULT NULL, - Off-Premises,Tuesday,所有类型的酒精,
开始时间
offtueallend
SMALLINT(4)NULL DEFAULT NULL, -
场外,周二,所有类型的酒精,结束时间
offtuebwstart
SMALLINT(4)NULL DEFAULT NULL, - Off-Premises,
星期二,仅啤酒和葡萄酒,开始时间
offtuebwend
SMALLINT(4)
NULL DEFAULT NULL, - Off-Premises,Tuesday,Beer and Wine only,End
时间
offwedallstart
SMALLINT(4)NULL DEFAULT NULL, -
场外,周三,所有类型的酒精,开始时间
offwedallend
SMALLINT(4)NULL DEFAULT NULL, - Off-Premises,
星期三,所有类型的酒精,结束时间
offwedbwstart
SMALLINT(4)NULL DEFAULT NULL, - Off-Premises,Wednesday,Beer and
仅限葡萄酒,开始时间
offwedbwend
SMALLINT(4)NULL DEFAULT NULL,
- 场外,周三,仅限啤酒和葡萄酒,结束时间为offthuallstart
SMALLINT(4)NULL DEFAULT NULL, - 场外,
星期四,所有类型的酒精,开始时间
offthuallend
SMALLINT(4)NULL DEFAULT NULL, - Off-Premises,Thursday,All types of
酒精,结束时间
offthubwstart
SMALLINT(4)NULL DEFAULT NULL,
- 场外,周四,仅限啤酒和葡萄酒,开始时间为offthubwend
SMALLINT(4)NULL默认为空, - 场外,
周四,仅限啤酒和葡萄酒,结束时间为offfriallstart
SMALLINT(4)NULL DEFAULT NULL, - Off-Premises,Friday,所有类型的
酒精,开始时间
offfriallend
SMALLINT(4)NULL DEFAULT NULL,
- 场外,周五,所有类型的酒精,结束时间
offfribwstart
SMALLINT(4)NULL DEFAULT NULL, - 场外,
周五,仅限啤酒和葡萄酒,开始时间
offfribwend
SMALLINT(4)
NULL DEFAULT NULL, - Off-Premises,Friday,Beer and Wine only,End
时间
offsatallstart
SMALLINT(4)NULL DEFAULT NULL, -
场外,周六,所有类型的酒精,开始时间
offsatallend
SMALLINT(4)NULL DEFAULT NULL, - Off-Premises,
星期六,所有类型的酒精,结束时间
offsatbwstart
SMALLINT(4)NULL DEFAULT NULL, - Off-Premises,Saturday,Beer和
仅限葡萄酒,开始时间
offsatbwend
SMALLINT(4)NULL DEFAULT NULL,
- 场外,周六,仅限啤酒和葡萄酒,结束时间为onsunallstart
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies(酒吧,
周日,所有类型的酒精,开始时间
onsunallend
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,Sunday,
所有类型的酒精,结束时间
onsunbwstart
SMALLINT(4)NULL
DEFAULT NULL, - On-Premsies,Sunday,Beer and Wine only,Start
时间
onsunbwend
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,
周日,仅限啤酒和葡萄酒,结束时间为onmonallstart
SMALLINT(4)
NULL DEFAULT NULL, - On-Premsies,Monday,所有类型的酒精,开始
时间
onmonallend
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,
星期一,所有类型的酒精,结束时间
onmonbwstart
SMALLINT(4)
NULL DEFAULT NULL, - On-Premsies,Monday,Beer and Wine only,Start
时间
onmonbwend
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,
周一,仅限啤酒和葡萄酒,结束时间为ontueallstart
SMALLINT(4)
NULL DEFAULT NULL, - On-Premsies,Tuesday,所有类型的酒精,
开始时间
ontueallend
SMALLINT(4)NULL DEFAULT NULL, -
On-Premsies,星期二,所有类型的酒精,结束时间
ontuebwstart
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,Tuesday,
仅啤酒和葡萄酒,开始时间
ontuebwend
SMALLINT(4)NULL
DEFAULT NULL, - On-Premsies,Tuesday,Beer and Wine only,End Time
onwedallstart
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,
星期三,所有类型的酒精,开始时间
onwedallend
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,Wednesday,所有类型的
酒精,结束时间
onwedbwstart
SMALLINT(4)NULL DEFAULT NULL, -
On-Premsies,周三,仅啤酒和葡萄酒,开始时间
onwedbwend
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,Wednesday,
仅啤酒和葡萄酒,结束时间
onthuallstart
SMALLINT(4)NULL
DEFAULT NULL, - On-Premsies,星期四,所有类型的酒精,开始
时间
onthuallend
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,
星期四,所有类型的酒精,结束时间
onthubwstart
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,Thursday,Beer and Wine
only,Start Time
onthubwend
SMALLINT(4)NULL DEFAULT NULL, -
On-Premsies,周四,仅限啤酒和葡萄酒,结束时间
onfriallstart
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,Friday,
所有类型的酒精,开始时间为onfriallend
SMALLINT(4)NULL
DEFAULT NULL, - On-Premsies,Friday,所有类型的酒精,结束
时间
onfribwstart
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,
周五,仅限啤酒和葡萄酒,开始时间
onfribwend
SMALLINT(4)
NULL DEFAULT NULL, - On-Premsies,Friday,Beer and Wine only,End
时间
onsatallstart
SMALLINT(4)NULL DEFAULT NULL, -
On-Premsies,星期六,所有类型的酒精,开始时间
onsatallend
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,Saturday,
所有类型的酒精,结束时间
onsatbwstart
SMALLINT(4)NULL
DEFAULT NULL, - On-Premsies,Saturday,Beer and Wine only,Start
时间
onsatbwend
SMALLINT(4)NULL DEFAULT NULL, - On-Premsies,
周六,仅限啤酒和葡萄酒,结束时间为offexceptions
TEXT NULL,
- 作为备注的异地异常
onexceptions
TEXT NULL, - 内部异常作为非source
TEXT NULL, - 哪里做了
此信息来自?
sourcelink
TINYTEXT NULL, - Link
for information information timezone
TINYTEXT NULL, - TimeZone(EST,for
例子)
notes
TEXT NULL - 其他杂项注释
正如您所看到的,这是一种数据噩梦。我一直在阅读如何更好地组织这个问题,并且出现的一些问题正在跨越午夜进行销售,并且还存在另一个问题,即一周中的多天具有相同的开始和结束时间,我认为我可以创建一个只有字段的表:
请随意为架构提出任何建议。
谢谢!
答案 0 :(得分:1)
使用多个表是使用关系数据库的主要优势之一。否则,请继续使用电子表格程序。 :-0
我在该数据库结构中看到的一个缺陷是,例如,查找星期四的信息需要知道四个字段的特定字段名称。最好是字段名称是通用的 - 在它们中没有星期几 - 并且为一周中的某一天添加一个字段。这减少了几乎七倍的字段数:28个字段减少到5个。
可能会对地理区域进行一些进一步的数据规范化,但如果不了解更多有关如何使用的信息,则很难知道。如果与字段名称有很多接口,那么您已经有一堆工作只是为了减少它在一周中的某一天。尝试修改模式只是为了那么多,你可能已经足够了解是否需要做更多的工作,或者它是否会比它的价值更多。