我们正在销售打印机和墨水。我们正在切换标签软件并希望实现数据库。 我们的标签上有安全说明。每条指令都有一个唯一的标识符,我们有多种语言的指令。每种墨水有大约6-12条指令。
现在我设计了一个数据库。您将在本文的底部找到这些表格。
是否有可能获得墨水和几条安全说明?
INK
i_id
i_name
INSTRUCTION
in_id
in_text
INSTRUCTION_IDENTIFIER
ii_id
ii_name
LANGUAGES
l_id
l_name
INSTRUCTION_LANGUAGE_IDENTIFIER
ili_id
fk_in_id
fk_ii_id
fk_l_id
SUM_TABLE
st_id
fk_i_id
fk_ii_id_1
fk_ii_id_2
fk_ii_id_3
fk_ii_id_4
fk_ii_id_5
fk_ii_id_6
fk_ii_id_7
fk_ii_id_8
fk_ii_id_9
fk_ii_id_10
fk_ii_id_11
fk_ii_id_12
答案 0 :(得分:1)
http://beginner-sql-tutorial.com/sql-joins.htm
您需要了解联接以从其他表中获取信息 它会像
Select sum.*,ins1.name,ins2.name, ..... ins12.name
from SUM_TABLE sum
inner join INSTRUCTION ins1 on ins1.ii_id = sum.fk_ii_id_1
inner join INSTRUCTION ins2 on ins2.ii_id = sum.fk_ii_id_2
....
inner join INSTRUCTION ins12 on ins12.ii_id = sum.fk_ii_id_12
您应该重新考虑关于总和表的策略,因为如果您将来需要13个ID,您真的不想重新创建表
答案 1 :(得分:0)
我不会在墨水和墨水上工作因此我的建议可能存在缺陷,但根据您的描述,我会采用不同的解决方案:
INK
i_id
i_name
INSTRUCTION
in_id
in_text
l_id
LANGUAGES
l_id
l_name
INK_INSTRUCTION
i_id
in_id
ii_position
如果你不需要修改数据库结构,你需要更多的指令行(正如@JamesZ所指出的那样)。
如果这是您将要出售的软件(可能)将来依赖的东西,那么您应该支付定义数据库结构的支持。 错误的数据库结构可能会使事情成为使用和维护的噩梦,如果你错了,那么你会看到成本上升(开发困难,维护困难,复杂升级,复杂迁移)。