我想收集我国大约10000家药店的所有数据。
我的设计如下:
Drugstore main info (uniqueid, hi_number, drugstorename, drugstoretype, drugstorerelateuniversity, servicetype, workinghours, locationcity)
Drugstore details info (uniqueid, Address, Postalcode, Tell, GPSinfo, Area)
Drugstore Holder Detail (uniqueid, dh_type, Name, Family, int_code, city, address, tellو licensenumber, Quota)
Drugstore Pharmacy technician (uniqueid, teclicense, expiredate, name, family, tell, city, wokr_time)每个药剂师可以在一个或多个药店工作,每个药店老板可以持有一个或更多的药店,每个药店的主要信息有一个药店的详细信息。
我们的模式对DB中的实现有好处吗?还是需要一些正常化?
发布于 2018-05-17 21:15:58
如果drugstoreMain和drugstoreDetail之间存在1比1的匹配(也就是说,每个drugstoreMain行都有一个和唯一一个匹配的drugstoreDetail行),那么逻辑表似乎就是drugstore,所有列都在一个表中。
有一些潜在的理由来分裂它。特别是,如果有一组列很少被引用,而另一组列将被频繁引用,那么它可以提高分离很少引用的列的性能。但是,有了适当的索引和对所需列的良好规范(避免使用SELECT *),性能可能与两个表一样好。
当然,我也可能误解了,您可能需要有一个主表和一个详细表。尽管如此,考虑清楚这些事情还是很好的。
发布于 2018-05-17 12:59:56
有几件事:
您需要一些数据类型。
drugstore_main比drugstore_details表要大,这可能会使事情慢下来。
你是怎么得到数据的?这将在您希望如何构造数据库方面发挥很大的作用。构建数据库以反映用于填充它的平面文件可能更容易。
哦,使用整数ID可以省去很多麻烦,不要使用newid()。
发布于 2018-05-17 13:03:59
我会考虑为药学技术表添加一个列和一个外键,以确保只有有效的药店ID才能分配给该技术。
https://dba.stackexchange.com/questions/207037
复制相似问题